Link auf bestimmte Archiv-Seiten

  • Hallo,

    so langsam arbeite ich mich ja ein, aber ich kann die Codex-Tagreferenzen durchwühlen wie ich will, ich finde den Ansatz nicht:

    Wie setze ich explizite Links ins Archiv? Insbesondere mit sebstgewähltem Linktext (in meinem Fall "« Ältere Artikel")? Gesucht:

    • Link auf den vorletzten Artikel (Startseite hat nur den aktuellsten)
    • Am Ende eines Jahresarchivs auf den Beginn des vorherigen Jahres

    Bei wp_get_archives() kann ich offenbar nur before und after beeinflussen, ansonsten finde ich nur Wege, auf Beiträge, Pages, Kategorien zu verlinken.

    Im Moment rette ich mich für Problem eins mit dem Konstrukt, dass den Loop über alle Beiträge startet, beim zweiten Beitrag Halt macht und dafür einen get_year_link()-Link ergänzt um Anker ("#post-*") bzw. "2/", je nach Anzahl der Beiträge pro Seite. Wo ich jetzt noch der Vollständigkeit halber berücksichtigen müsste: Verwende ich ggf. doch nicht permalink? Usw., das zieht einen unendlichen Rattenschwanz nach sich (insb. für Problem zwei).

    Ideen?

    Grüße,
    Thorsten

    • 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

  • Also die Version mit dem Loop, den Du nach zwei Posts quasi abbrichst, ist schon ganz gut. Als Verbesserung schlage ich vor: Nur die ersten beiden Posts aus der DB auslesen. Dafür den Loop so modifizieren (ganz oben, auf jeden Fall vor if have_posts):

    PHP
    $posts = query_posts($query_string . '&showposts=2');

    Soll der Link dann auf den vorletzten Beitrag zeigen oder auf eine Seite, die alle Beiträge ab dem vorletzten enthält? Für ersteres kannst Du im Loop ganz einfach the_permalink() nutzen, das baut Dir einen korrekten Link auf den Post, egal wie Deine Permalinkstruktur aussieht.

    Zu Problem Nummer zwei (Am Ende eines Jahresarchivs auf den Beginn des vorherigen Jahres verlinken): Naja, Du verlinkst halt einfach auf das entsprechende vorherige Jahresarchiv. Ähm, mal kurz im Codex gesucht... Das sollte so aussehen:

    PHP
    $year = get_the_time('Y');
    get_year_link($year - 1);

    Die Jahresarchive kannst Du bei Bedarf auch andersherum sortieren. Normalerweise würden ja die neuesten Beiträge oben stehen (also absteigend sortiert). Wenn Du es gerne aufsteigend hättest kannst Du auch hier die Query modifizieren:

    PHP
    if (is_year()) {
      $posts = query_posts($query_string . '&order=asc');
    }

    Das würde jetzt nur die Jahresarchive umdrehen, so einfach oben in die archive.php schreiben (nicht archive*s*.php, die macht was anderes, falls Dein Theme die überhaupt hat).

  • Moin,

    Danke für die Antwort, habe ich also nichts übersehen und muss mir meine eigene "get_archive_link()" oder so basteln...

    Vielleicht kommt ja was allgemeiner, über das eigene Template hinaus verwendbares bei raus :-?

    Grüße,
    Thorsten

Jetzt mitmachen!

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