Statische Blog-Seite, Paginierung und query_posts()

  • Hallo Forum,

    ich bin gerade auf ein Problem gestoßen, dass ich mir nicht erklären kann.

    Ausgangslage:
    Ich bastle mir gerade ein Theme, das eine statische Start- und Artikelseite hat. Die Startseite funktioniert soweit. Die Artikelseite jedoch nicht.

    Folgener Code soll mir die letzten X Artikel anzeigen, außer die aus der Kategorie mit der ID 107:

    Mir werden dann zwar X Seiten angezeigt, jedoch funktionieren die Links nicht. Ich gehe auf Seite 2 (&paged=2), dort stehen jedoch die gleichen Artikel wie auf der 1. Seite, bei den nachfolgenden Seiten ist es das gleiche.

    Lasse ich das query_posts() weg, werden mir alle Artikel inkl. funktionierender Paginierung angzeigt, jedoch auch die aus der falschen Kategorie.

    Kann mir jemand sagen, was ich falsch mache?

    Schöne Grüße
    b.

    • 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

  • Statische Seiten sehen von Haus aus keine Paginierung vor, deshalb muss du es erst definieren und dann mit in den query_posts() einbauen. Muss grad mal überlegen wie das noch mal ging. So meine ich:

    PHP
    <?php 
    $paged = (get_query_var('page')) ? get_query_var('page') : 1;
    query_posts( 'cat=-107&paged='.$paged ); 
    if ( have_posts() ) : while ( have_posts() ) : the_post(); 
    ?>

    Wenn nicht, schau mal kurz selbst in den Codex.

    [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]

  • Danke für die Antwort, das werde ich gleich mal testen.

    Irgendwie bin ich auch noch nicht ganz zufrieden mit meinem Plan.

    Ich habe eine "statische" Startseite, dort liegt ein Custom Template drauf. Dort sind auch die letzten 3 Blog-Posts zu sehen. Was ich eigentlich haben möchte, ist ein Archiv für die restlichen Artikel, das per Link ("Zum Archiv") aufrufbar ist. Daher die statische Blog-Seite.

    Dafür ist doch eigentlich die index.php zuständig. Aber was muss ich aufrufen, wenn ich dort hin möchte? ?cat=d gibt ja nur das Archiv der gewählten Kategorie.

  • Wenn du eine Blog-Seite haben willst, leg eine leere Seite -die du "Zum Archiv" nennst- an und wähle diese in den Einstellungen als Artikel-Seite aus.
    (Auch hierfür könntest du wieder ein eigenes Seitentemplate anlegen.)

    [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]

  • Das Paging auf der Seite lief problemlos solange ich die Seite nicht als Startseite genutzt habe.
    Dabei hat mir der Beitrag von Devin Walker hier: http://wordpress.org/support/topic/…-page-templates geholfen.
    vor dem loop die Variable definieren:

    PHP
    <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>

    und nach dem loop und dem paging die query zurücksetzen:

    PHP
    <?php wp_reset_query();?>

Jetzt mitmachen!

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