Kategorien in der Menuleiste verlinken

  • Leider werden alle Artikel untereinander angezeigt und ich wollte fragen, wie ich die Anzahl der Artikel auf bspw. 15 beschränke und dann die Möglichkeit "Ältere Artikel" anzuklicken, bzw. "Neuere Artikel". Dafür gibt es doch sicherlich einen Befehl, oder?


    Schau dir mal die query_posts()-Parameter "paged" und "posts_per_page" an ("showposts" lässt du dann weg).

    Ich weiß jetzt nicht, ob posts_nav_link() die korrekte URL zusammenbastelt, eventuell musst du dort selbst Hand anlegen und die korrekten "paged"-Parameter anhängen.

    • 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

  • Zitat

    Ich weiß jetzt nicht, ob posts_nav_link() die korrekte URL zusammenbastelt,


    Da hast du recht - es werden mir die selben Artikel noch einmal angezeigt auf einer Seite, die in der URL lediglich ein "page/2/" angehängt hat.

    Zitat

    eventuell musst du dort selbst Hand anlegen und die korrekten "paged"-Parameter anhängen.

    Ok, klingt logisch, aber:
    Wo finde ich die Parameter?
    Was muss ich da ändern?
    Wird die Suchergebnis-Seite von diesen Änderungen dann auch betroffen sein und sich verändern?
    Danke

  • Da hast du recht - es werden mir die selben Artikel noch einmal angezeigt auf einer Seite, die in der URL lediglich ein "page/2/" angehängt hat.


    Ja, das meinte ich.


    Zitat

    Ok, klingt logisch, aber: Wo finde ich die Parameter? Was muss ich da ändern?


    Versuchs mal damit:

    PHP
    if ( !isset( $paged ) ) {
      echo '<a href="' . get_permalink(123) . '?paged=2">Nächste Seite</a>';
    } else {
      echo '<a href="' . get_permalink(123) . '?paged=' . ($paged + 1) . '">Nächste Seite</a>';
    }


    Eventuell noch abprüfen, ob du schon auf der letzten Seite bist. Für vorhergehende Seiten analog. (123 ist natürlich die ID deiner Artikelseite)

    Zitat

    Wird die Suchergebnis-Seite von diesen Änderungen dann auch betroffen sein und sich verändern?


    Die Suchergebnisseite dürfte einfacher sein, diese hat ja die search.php als Template.

  • Ok ich habe als ID 21 eingegeben. Aber irgndwas stimmt mit dem Code nicht. Auf der Seite steht unten mehr als erwartet, nämlich:

    Zitat

    if ( !isset( $paged ) { echo 'Nächste Seite'; } else { echo 'Nächste Seite'; }

    Und der Link (abgesehen davon, dass er zweimal dasteht, funktioniert auch nicht. Habe ich einen Fehler gemacht? oder mal wieder in Unkenntnis des großen Rests was nicht verstanden?
    Danke

  • Du hast die PHP-Tags vergessen:

    PHP
    <?php if ( !isset( $paged ) ) { 
      echo '<a href="' . get_permalink(123) . '?paged=2">Nächste Seite</a>'; 
    } else { 
      echo '<a href="' . get_permalink(123) . '?paged=' . ($paged + 1) . '">Nächste Seite</a>'; 
    } ?>


    (und in der 1. Zeile hatte ich ne Klammer vergessen)

  • Auf die Php-Tags bin ich grade auch gekommen. Jetzt zeigt er mir eine Fehlermeldung für Zeile 43:

    PHP
    echo '<a href="' . get-permalink(21) . '?paged=' . ($paged + 1) . '">Nächste Seite</a>';


    sehe den Fehler aber nicht.

    Zitat

    (und in der 1. Zeile hatte ich ne Klammer vergessen)


    Die hast du beim zweiten Mal auch nicht eingefügt und ich sehe nicht wo die fehlt:?

  • Auf die Php-Tags bin ich grade auch gekommen. Jetzt zeigt er mir eine Fehlermeldung für Zeile 43:


    Wäre nett wenn du schreiben würdest, welche Meldung da kommt.

    PHP
    echo '<a href="' . get_permalink(21) . '?paged=' . ($paged + 1) . '">Nächste Seite</a>';


    get_permalink() (Unterstrich statt Bidnestrich).

    Zitat

    Die hast du beim zweiten Mal auch nicht eingefügt


    Doch, hab ich. Ich hab sogar oben den Beitrag deshalb editiert.

  • Zitat

    Wäre nett wenn du schreiben würdest, welche Meldung da kommt.


    Habe ich vergessen. Hier ist sie:

    Zitat

    Fatal error: Call to undefined function: permalink() in /homepages/10/d117868913/htdocs/markentechnik-blog/wordpress/wp-content/themes/PRiNZ_BranfordMagazine_latest/branfordmagazine/blog-page.php on line 43


    Habe die Unterstriche eingefügt und jetzt wird der Befehl korrekt dargestellt. Aber der Link funktioniert nicht richtig. Die URL hängt sich kurz ein "/?paged=1" an - das verschwindet dann aber gleich wieder und die selbe Seite wird wieder angezeigt.
    Zur Kontrolle habe ich den Schnipsel noch mal angefügt:

    PHP
    <?php if ( !isset( $paged ) ) {  
      echo '<a href="' . get_permalink(21) . '?paged=2">Nächste Seite</a>';  
    } else {  
      echo '<a href="' . get_permalink(21) . '?paged=' . ($paged + 1) . '">Nächste Seite</a>';  
    } ?>


    Ich habe den Eindruck, wir gelangen jetzt wieder an die Grenzen des Themes, oder täusche ich mich?

  • Aber der Link funktioniert nicht richtig. Die URL hängt sich kurz ein "/?paged=1" an - das verschwindet dann aber gleich wieder und die selbe Seite wird wieder angezeigt


    Welche Permalinkstruktur hast du? Standard oder umgeschrieben? Bei Standard versuch mal:

    HTML
    <a href="' . get_permalink(21) . '&amp;paged=2">

    Bei Non-Standard könntest du das versuchen:

    HTML
    <a href="' . get_permalink(21) . 'page/2">


    und gucken obs korrekt als $paged übergeben wird.

    Zitat

    Ich habe den Eindruck, wir gelangen jetzt wieder an die Grenzen des Themes, oder täusche ich mich?


    Durchaus möglich. Hast du mittlerweile den Themeautor mal kontaktiert?

Jetzt mitmachen!

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