1 Artikel pro Seite mit Sticky geht nicht

  • Hallo Leute,

    habe gerade versucht über die Forensuche und auch schon über google eine Lösung für mein Problem zu finden aber es ist mir nicht gelungen. Sollte dies Thema trotzdem schonmal besprochen worden sein bitte ich schon jetzt um Entschuldigung.

    Ich möchte einen Artikel per Sticky oben halten und nur einen Artikel pro Seite anzeigen lassen und das schein nicht zu gehen. Immer wenn ich den Sticky Artikel mit Sticky deklariere erscheint auf der ersten Seite erst der Sticky Artikel und dann der zuletzt eingestellte Artikel. Trotz Einstellung Lesen 1 Artikel pro Seite. Ich nutze WP3.04 und habe es auch mit 3.13 probiert mit dem selben Resultat. Ich nutze Blueblog als Theme und habe es aber auch mit Twenty Ten probiert und das Ergebniss ist immer das selbe.

    Wenn kein Artikel Sticky ist, ist es so wie es sein sollte der letzte Artikel wird als ein Artikel angezeigt aber sobald ich dann den Sticky, Sticky markiere erscheint der Sticky und danach der letzte Artikel.

    Dann hab ich schon versucht es mit

    PHP
    query_posts( 'posts_per_page=1' );

    vor der While Loop zu ändern und das Ergebnis war das auf allen Artikelseiten der selbe Artikel angezeigt wurde.

    Da die Sticky Funktion ja in der Post.php ist hab ich da auch mal reingesehen aber dafür reicht leider mein PHP Halbwissen nicht aus.

    Wer kann mir Helfen das wenn ich ein Artikel pro Seite eingestellt ist auch wirklich
    nur ein Artikel angezeigt wird und bitte der Sticky zuerst. Die Sortierung vom Rest ist eigentlich nicht so wichtig.

    Muß die post.php in den WP-Includes dafür geändert werden und wenn wie?

    Hier nochmal der PHP code der Index.php wo ich author, comments etc. entfernt habe:

    Freu mich auf eure Hilfe und danke schonmal im Voraus.

    Gruß
    Jürgen

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich versteh Dein vorhaben nicht ganz, sorry.

    Du willst quasi immer nur ein Artikel anzeigen. Richtig? Dann praktisch auf der 1. Seite den sticky artikel und dann auf den Folgeseiten die "normalen" Artikel, eben auch je immer nur einen? Ist das soweit richtig?

    Sollte das richtig sein, wirst Du wohl nicht drum rum kommen mit is_paged zu arbeiten. Du baust eine Abfrage ein is_paged und wenn nicht wird der sticky Artikel angezeigt:

    PHP
    query_posts(array('posts_per_page' => 1,'post__in'  => get_option('sticky_posts'),'caller_get_posts' => 1));

    und wenn paged der normale Loop ausgeführt.

    http://codex.wordpress.org/Function_Reference/is_page

  • Ja Bambaataa, Du hast es genau richtig verstanden. Ist der von Dir gepostete PHP code so vollständig? Den packe ich dann vor die Loop....Ich werd das mal probieren und auch noch mal nach dem is_paged suchen und lesen.

    Ich danke Dir schonmal und werd hier auch berichten ob es geklappt hat.:razz:

    Gruß
    Jürgen

  • So hab das jetzt wie folgt eingefügt:

    PHP
    <?php if (have_posts()) : ?>
    
    
    
    
    <?php query_posts(array('posts_per_page' => 1,'post_in'  => get_option('sticky_posts'),'caller_get_posts' => 1)); ?>
    
    
    <?php while (have_posts()) : the_post(); ?>

    Den 2fachen unterstrich bei post_in den du drin hattest hab ich mal rausgenommen. Das Ergebnis ist leider, daß der Sticky artikel nicht mehr angezeigt wird und auf allen Artikelseiten immer nur der letzte Artikel angezeigt wird :-(

    Hmm ich verzweifle so langsam und die is_paged funktion scheint zur Zeit offline zu sein weil ich immer einen 504 error kriege auf wordpress.org


    Und ich dachte das wäre leicht...hmmm

    Einmal editiert, zuletzt von juergen1912 (28. Juni 2011 um 08:42)

  • Der doppelte Unterstrich war schon richtig.
    Und caller_get_posts ist seit WP3.1 deprecated, oder?
    Ich bin bei sticky nicht wirklich sicher, aber müsste es nicht eher so lauten:

    PHP
    <?php if (have_posts()) : ?>
    <?php if (is_paged()) {
    query_posts( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
    } 
    ?>
    <?php while (have_posts()) : the_post(); ?>

    guck auch mal hier: http://codex.wordpress.org/Sticky_Posts

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • maxe Ob ich jetzt einbe Abfrage baue die prüft ob !is_paged und dann den sticky hol oder prüfe ob is_paged und dann keinen hole, bleibt sich glaub ich gleich. Viele Wege führen nach Rom :-)

    Desweiteren würde so ja überhaupt keine Sticky Artikel mehr angezeigt. Es gibt ja durchaus ältere Artikel die mal sticky gesetzt wurden und beim durchblättern dann doch gezeigt werden sollten, oder?

    Und ja stimmt, das caller_get_posts kann da raus, hatte ich leider noch in meiner Code Sammlung so drin, weiß der Geier warum :-)

  • Also das sind schonmal super Anregungen für mein PHP "kleinhirn" Ich werd nu mal ne bisschen probieren mit den Ideen und werd natürlich bei erfolg die Lösung posten.....fals jemand auf den Artikel stößt....das gleiche Problem hat und ne Lösung sucht.

    Nur noch kurz für so'nen Schmalspur PHP'ler wie mich

    maxe wenn ich in PHP ein "weiteres" IF (

    PHP
    php if (is_paged())


    öffne.....

    Muß ich das dann nicht auch mit endif oder elsif schließen? :?::idea::?:

    Gruß
    Jürgen
    </span></span>

  • maxe  Bambaataa hat recht beides bleibt sich gleich.

    Leider hat aber beides auch nicht den gewünschten Effekt. Egal was ich eintrage es bleibt immer das selbe Der Sticky Artikel wird als erster angezeigt so wie es auch sein soll aber dann kommt zusätzlich immer der zuletzt bearbeitete Artikel. Auf der ersten Seite werden also 2 Artikel angezeigt und nicht wie gewünscht nur einer :-(

    Habt Ihr noch andere Ideen wie man das hinkriegen kann?

  • Hmm....

    Meine Notlösung sieht wie folgt aus auch wenn etwas unbefriedigend:


    • Keinen Artikel als Sticky markieren
    • Datum des gewünschten Artikels für die Home Seite auf Heute
    • Datum aller anderen Artikel auf Gestern setzen

    keine Änderung in index.php

    Sollte das tatsächlich die einzige Krückenlösungsmöglichkeit sein?!?

  • maxe Ob ich jetzt einbe Abfrage baue die prüft ob !is_paged und dann den sticky hol oder prüfe ob is_paged und dann keinen hole, bleibt sich glaub ich gleich. Viele Wege führen nach Rom :-)

    Bambaataa, sollte auch absolut kein Angriff sein. Ich schrieb ja, mit sticky kenn ich mich nicht so aus. Waren nur meine bescheidenen Gedanken dazu.
    Und ja, noch ein Denkfehler von mir ... bei is_paged() würden dann gar keine Stickys mehr angezeigt werden :oops:

    Zitat von juergen1912


    maxe wenn ich in PHP ein "weiteres" IF (
    PHP-Code:
    php if (is_paged())
    öffne.....

    Muß ich das dann nicht auch mit endif oder elsif schließen?

    Ist ja durch die geschweifte Klammer geöffnet und auch wieder geschlossen, ist halt nur eine andere Schreibweise ;-)

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Bambaataa, sollte auch absolut kein Angriff sein. Ich schrieb ja, mit sticky kenn ich mich nicht so aus. Waren nur meine bescheidenen Gedanken dazu.

    Angriff? Wo soll ich einen Angriff sehen? Hab ich nicht so aufgefasst, keine Angst. :-)

    Hab auch ewig rumgemacht bis ich das mal hatte und muss es wohl wieder umbauen demnächst wegen dieser deprecated Geschichte. :-(

  • Dann ist ja alles Palette :D

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!