Archiv zeigt statt jahr 2000 nur 0 an

  • Hallo und einen schönen guten Tag (trotz Regenwetter und Bahnstreik),

    Ich habe im Archiv einer Website die Möglichkeit eingerichtet, Artikel nach Jahr auszuwählen.

    Der Scriptschnipsel dazu lautetet:

    PHP
    <ol  class="archiv-liste">
        <?php
        $years = $wpdb->get_col("SELECT DISTINCT YEAR(post_date) FROM $wpdb->posts ORDER BY post_date DESC");
        foreach($years as $year) : ?>
        <li><a href="<?php echo get_year_link($year); ?> "><?php echo $year; ?></a></li>
        <?php endforeach; ?>
        </ol>

    Die Artikel beginnen mit dem Jahr 2001.
    Nun wird in meinem Archiv aber vor 2001 die Zahl 0 angezeigt. Ich weiß nun nicht, ob das für 2000 steht. Wenn man auch die 0 klickt, landet man nämlich auf den Artikeln von 2007 (http://www.domainname.de/wp/date/2007/).

    Hier noch mal anschaulicher:

    Nach Jahr suchen:

    2007 2005 2004
    2003 2002 2001
    0

    Es gibt, wie gesagt, keine Artikel im Jahr 2000. Weshalb wird dann aber die 0 angezeigt?

    Ich habe mal probehalber einen Artikel ins Jahr 2000 zurückdatiert - da wurde dann das Jahr 2000 korrekt angezeigt. Ich möchte aber nicht fälschlicherweise eine Artikel ins 2000 verlegen, nur damit die Anzeige stimmt.

    Weiß jemand, wo das Problem liegt?

    Über einen Tipp wfreue ich mich.

    Viele Grüße
    Gandalfine

    • 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

  • Spontane Idee: Drafts. Da diese ja noch kein Datum haben, könnte es sein, dass diese eine 0 (bzw. gar keinen Wert) haben. Du solltest deinen Code-Schnipsel ein bisschen ändern:

    PHP
    <ol  class="archiv-liste">
        <?php
        $years = $wpdb->get_col("SELECT DISTINCT YEAR(post_date) FROM $wpdb->posts WHERE post_status = 'publish' ORDER BY post_date DESC");
        foreach($years as $year) : ?>
        <li><a href="<?php echo get_year_link($year); ?> "><?php echo $year; ?></a></li>
        <?php endforeach; ?>
        </ol>

    So werden nur die Beiträge berücksichtig, die auch veröffentlicht sind.

    Gruß Jeriko

    Jeriko - Design, Style, Photographie

Jetzt mitmachen!

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