Navigation nur ausgeben wenn nicht leer

  • Folgender Code funktioniert nicht. Wie müsste ich es richtig machen?

    • 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

  • Vom kurz überfliegen würde ich sagen,[COLOR=Black]previous_post_link() und next[/COLOR][COLOR=#000000][COLOR=#0000cc][COLOR=Black]_post_link() sind Funktionen, die gleich ausgeben. Du bräuchtest die äquivalente Funktion, die das Ergebnis als Variable zurückgibt. Müsstest Du mal im Codex nachschlagen, ob es das gibt und wie sie heißt.

    Außerdem solltest Du überlegen, ob Du die if-Bedingungen UND-verknüpfen willst. Dann würde die Navigation auf der ersten und auf der letzten Seite nicht angezeigt.[/COLOR]
    [/COLOR][/COLOR]

  • Vom kurz überfliegen würde ich sagen,[COLOR=Black]previous_post_link() und next[/COLOR][COLOR=#000000][COLOR=#0000cc][COLOR=Black]_post_link() sind Funktionen, die gleich ausgeben. Du bräuchtest die äquivalente Funktion, die das Ergebnis als Variable zurückgibt. Müsstest Du mal im Codex nachschlagen, ob es das gibt und wie sie heißt.
    [/COLOR]
    [/COLOR][/COLOR]


    Auf die Idee bin ich inzwischen auch schon gekommen kann aber in codex die nötigen Funktionen nicht finden.

    Matthias

  • Hm, die Funktionen scheint es nicht zu geben, und einen echo-Parameter haben sie auch nicht. Wenn Dir das wichtig ist, könntest Du die Funktionen aus wp-includes/link-template.php rauskopieren, umbenennen und entsprechend modifizieren (return statt echo). Das ist natürlich keine gute Lösung falls sich in zukünftigen WP-Versionen was an den Methoden ändert.

    Was genau willst Du eigentlich machen? So wie Du es ursprünglich gepostet hast, willst Du ja den Navigations-Block nur ausgeben, wenn in beiden Links was drinsteht. Das heißt, er würde beim jeweils ersten und letzten Post nicht stehen. Das macht IMHO nur bedingt Sinn. Wenn Du aus dem AND ein OR machst, würde der Block immer ausgegeben, solange Du mehr als ein Post geschrieben hast. Oder irre ich mich da?! Hatte mir das letztens mal angeschaut und dann diese Funktion aus meinem Theme entfernt, da sie ja immer nur chronologisch vorgeht, anstatt z.B. zum nächsten oder vorigen Post des Archivs / des Suchergebnisses etc. zu springen (wenn man von solch einer Seite kommt).


  • Was genau willst Du eigentlich machen? So wie Du es ursprünglich gepostet hast, willst Du ja den Navigations-Block nur ausgeben, wenn in beiden Links was drinsteht. Das heißt, er würde beim jeweils ersten und letzten Post nicht stehen. Das macht IMHO nur bedingt Sinn. Wenn Du aus dem AND ein OR machst, würde der Block immer ausgegeben, solange Du mehr als ein Post geschrieben hast. Oder irre ich mich da?!


    Es soll natürlich ein ODER sein.
    Und wenn bis zu 10 Beiträge auf der Seite angezeigt werden, dann müssen es schon 11 sein damit der Block ausgegeben werden muss.
    Und wenn er sich auf die single.php bezieht dann wenn mehr als ein Post da ist. Aber es kann natürlich Kategorien geben mit nur einem Eintrag.

    Das Problem ist damit schon sehr relevant.


    Hatte mir das letztens mal angeschaut und dann diese Funktion aus meinem Theme entfernt, da sie ja immer nur chronologisch vorgeht, anstatt z.B. zum nächsten oder vorigen Post des Archivs / des Suchergebnisses etc. zu springen (wenn man von solch einer Seite kommt).


    bei mir hat das - meine ich aber funktioniert - vielleicht auch nicht mit exakt diesen Funktionen.

    Mir würde eine andere Lösung, die z.B. abzählt wieviele Artikel angezeigt werden sollen schon ausreichen, aber die Lösung dazu kenne ich nicht.

    Matthias

  • Zitat

    Und wenn bis zu 10 Beiträge auf der Seite angezeigt werden, dann müssen es schon 11 sein damit der Block ausgegeben werden muss.

    Nein, die Funktionen [COLOR=Black]previous_post_link() und next[/COLOR][COLOR=#000000][COLOR=#0000cc][COLOR=Black]_post_link() geben den Link zum jeweils nächsten oder vorherigen Beitrag aus. Auf den Übersichtsseiten (Archiv, Tag, Kategorie, Suchergebnis etc.) werden die Funktionen next_posts_link() und previous_posts_link() benutzt. Die kann man übrigens sehr schön mit dem Plugin WP-PageNavi durch eine hübschere Navigation ersetzen.[/COLOR][/COLOR][/COLOR]


    Zitat

    Und wenn er sich auf die single.php bezieht dann wenn mehr als ein Post da ist. Aber es kann natürlich Kategorien geben mit nur einem Eintrag.

    Genau das klappt meiner Erfahrung nach aber nicht (da kann ich mich natürlich irren -- weiß jemand anders mehr???). Soweit ich das probiert hatte, geben diese Funktionen immer den Link zum chronologisch davor oder danach kommenden Beitrag aus -- unabhängig davon, von welcher Kategorieseite, Archivseite etc. man kommt. Das kann WordPress an dieser Stelle auch gar nicht wissen, welche Seite vorher aufgerufen worden war.

    Falls das bei Dir mal so funktioniert hat, dann vermutlich nicht mit diesen Funktionen, denke ich.

  • ..... Soweit ich das probiert hatte, geben diese Funktionen immer den Link zum chronologisch davor oder danach kommenden Beitrag aus -- unabhängig davon, von welcher Kategorieseite, Archivseite etc. man kommt. Das kann WordPress an dieser Stelle auch gar nicht wissen, welche Seite vorher aufgerufen worden war.
    ....

    doch kann es ;)


    dann blättert man nur in der kategorie weiter, wo dieses eine Post war,

    HTML
    <?php previous_post_link('%link', '&laquo; &laquo;', TRUE); ?>
    
    
    <?php next_post_link('%link', '&raquo;&raquo;', TRUE); ?>

    das true sagt:nur in der Kategorie


    PHP
    <?php previous_post_link('%link','%title',FALSE,'52 and 53') ?> || <?php next_post_link('%link','%title',FALSE,'52 and 53') ?>


    und so schließe ich das Durchblättern alle Beiträge aus der Kategorie 53 and 53 aus

    d.h. selbst wenn da chronoligsch Beiträge wären, blättert man zu dem zeitlich nächsten Beitrag , der nicht in diesen beiden Kats ist.


    wieso da der Codex dies derzeit nicht anzeigt weiß ich nicht,
    ich fand nirgendwo etwas, dass dies bald *depricated* wäre

    lg

  • Danke für den Hinweis, Monika! Das wusste ich schon wieder gar nicht mehr. Für meinen Geschmack geht diese Lösung noch nicht wirklich weit genug, denn es gibt ja auch noch Tag-Seiten und Suchergebnisse. Dafür würde der Link dann wieder nicht stimmen. Aber immerhin, damit kann man schon mal was basteln...

    Code
    wieso da der Codex dies derzeit nicht anzeigt weiß ich nicht,
    ich fand nirgendwo etwas, dass dies bald *depricated* wäre

    Hm, nein, sollte es nicht. Das ist im Codex sogar beschrieben:
    Template Tags/previous post link « WordPress Codex

  • Danke für den Hinweis, Monika! Das wusste ich schon wieder gar nicht mehr. Für meinen Geschmack geht diese Lösung noch nicht wirklich weit genug, denn es gibt ja auch noch Tag-Seiten und Suchergebnisse. Dafür würde der Link dann wieder nicht stimmen. Aber immerhin, damit kann man schon mal was basteln...

    Code
    wieso da der Codex dies derzeit nicht anzeigt weiß ich nicht,
    ich fand nirgendwo etwas, dass dies bald *depricated* wäre

    Hm, nein, sollte es nicht. Das ist im Codex sogar beschrieben:
    Template Tags/previous post link « WordPress Codex

    ah wenn es zum Weiterbasteln hilft =super = Neugier wie wo was ;)

    ich fands diesmal nicht im Codex...naja ;)

    kann bei statischen Seiten so auch nicht funktionieren, weil die nicht geblättert werden,

    also nur *unecht* wird eine Seite aufgeteilt, aber die kann man nicht durchblättern, was ja dem System*statisch* auch widersprechen tät ;)

    bei tags, das ist eben derzeit technisch keine Kategorie,
    wieso eigentlich nicht verstehe wer mag ;)

    weil schubladieren tun ja beide


    lg

Jetzt mitmachen!

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