WordPress Funktion the_date liefert leeres Ergebniss

StartWild gebloggtWebentwicklungWordPress Funktion the_date liefert leeres Ergebniss

Da ich in meinem Blog die strukturierten Daten (Rich Snippets) nutze und sich dadurch Fehler über die Google Webmaster Tools relativ einfach verfolgen lassen, bin ich auf ein Bug / Problem / Feature (… oder wie man es auch immer nennen möchte 😉 von WordPress gestoßen. Dieser Fehler betrifft die Kategorie- oder auch Tag-Ansicht von Blogbeiträgen, d.h jene Ansicht die mehrere Blogpostings darstellt.

Innerhalb dieser Ansicht habe ich in meinem Template folgenden Code:

<div class="meta">
     ...
     <span class="date" itemprop="datePublished" content="<?php echo date("c",get_post_time()) ?>"><?php _e('am'); ?> <span class="post-date updated"><?php the_date('j. F Y'); ?></span></span>
 ...
</div>

Der Sinn und Zweck besteht darin, Google unter anderem mit dem updated Tag und der Funktion the_Date eine Information darüber zu liefern wann der Post erstellt / angepasst wurde. Interessanterweise liefert diese Funktion aber nicht bei jedem Beitrag ein Datum zurück, das betrifft jedoch nur die Ansicht mit der Auflistung der Blogbeiträge. Innerhalb des Blogbeitrags, sprich der Detailansicht, wird korrekt ein Datum zurückgegeben.

Wirft man einen Blick in die Dokumentation von WordPress (http://codex.wordpress.org/Template_Tags/the_date) folgt auch die Erklärung des Verhaltens:

SPECIAL NOTE: When there are multiple posts on a page published under the SAME DAY, the_date() only displays the date for the first post (that is, the first instance of the_date()).

Es scheint sich daher doch eher um ein Feature zu handeln, auch wenn die Erklärung gut versteckt ist und man in seinem WordPress Blog sicherlich über das Phänomen stolpern wird und im ersten Moment keine Ahnung hat warum und weshalb es dazu kommt.

Solltest Du in Deinem Blog auch mit diesem Problem zu kämpfen haben, ersetze die the_date Funktion einfach durch get_the_time. Dadurch (ich habe das in meinem Blog letztendlich auch so gelöst), wird der oben aufgeführte Code angepasst wie folgt aussehen:

<div class="meta">
     ...
     <span class="date" itemprop="datePublished" content="<?php echo date("c",get_post_time()) ?>"><?php _e('am'); ?> <span class="post-date updated"><?php echo get_the_time('j. F Y'); ?></span></span>
 ...
</div>

Merke: Sollen mehrere Blogbeiträge auf einer Seite dargestellt werden, musst Du die Funktion get_the_time nutzen, denn dadurch wird das Post-Datum immer dargestellt, auch wenn mehrere Artikel am selben Tag veröffentlicht wurden. Möchtest Du auf einer Detailansicht eines Blogbeitrags das Datum ausgeben, kannst Du auch auf die Funktion the_date zurückgreifen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.