Datum und Autor von Beiträgen im WordPress Theme anzeigen

In diesem Beitrag zeige ich, wie du Datum und Autor eines Beitrags im WordPress Theme anzeigen lassen kannst. Die Ausgabe von Beitragsdatum und Beitragsautor erfolgt dabei mit strukturierten Daten im hAtom Mikroformat für bessere Lesbarkeit in Suchmaschinen.

Zur Anzeige von Datum und Autor bietet sich die Erstellung eigener Template Funktionen in der functions.php des Themes an. Die Funktionen können dann an mehreren Stellen (z.B. Archive, einzelner Beitrag) verwendet werden und sind leicher mit Child Themes anpassbar.

Datum im WordPress Theme anzeigen

Zur Ausgabe des Beitragsdatums können wir die WordPress Funktion get_the_date() verwenden:

echo get_the_date();

Als Parameter könnte ein Datumsformat übergeben werden, was aber nicht empfohlen ist.

Ohne explizite Angabe verwendet WordPress nämlich das eingestellte Format in den WordPress Einstellungen. Nutzer können so selbst das Datumsformat unter Einstellungen → Allgemein ändern.

Zur korrekten Funktionsweise ist darauf zu achten, dass die Funktion innerhalb des WordPress Loops aufgerufen wird.

Beitragsdatum für Suchmaschinen im hAtom Standard ausgeben

An dieser Stelle könnte man das Tutorial schon beenden. Schließlich reicht die Ausgabe von get_the_date() zur Anzeige des Datums im WordPress Theme.

Es empfiehlt sich aber, das Beitragsdatum für Suchmaschinen als strukturierte Daten bereitzustellen.

Mit strukturierten Daten können Google & Co die Inhalte besser verstehen und die Suchergebnisse mit diesen Daten erweitern. Die Google Suche zeigt also nur Datum und Autor der Beiträge, wenn diese Details vom Theme richtig ausgezeichnet werden.

WordPress verwendet Mikroformate mit der hAtom Spezifikation zur Strukturierung der Seiteninhalte. Dazu wird standardmäßig die Klasse hentry zu allen WordPress Beiträgen mithilfe der Funktion post_class() hinzugefügt.

Für Theme Entwickler ist bei der Ausgabe des Datums darauf zu achten, dass dort die Klassen published und updated verwendet werden. Diese entsprechen dem hAtom Standard und können daher von Google ausgelesen werden.

Eine korrekte Erstellung des Datums mit den erforderlichen hAtom Klassen lässt sich beispielsweise im Underscores Starter Theme finden:

$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';

if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
    $time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
}

$time_string = sprintf( $time_string,
    esc_attr( get_the_date( 'c' ) ),
    esc_html( get_the_date() ),
    esc_attr( get_the_modified_date( 'c' ) ),
    esc_html( get_the_modified_date() )
);

Falls sich das Datum der Veröffentlichung vom Datum der letzten Aktualisierung des Beitrags unterscheidet, werden zwei Daten mit jeweils published und updated Klasse ausgegeben.

Für Besucher kann das zweite Datum mit etwas CSS Code ausgeblendet werden:

.updated:not(.published) {
	display: none;
}

Diese Vorgehensweise wird unter anderem in TwentySeventeen verwendet.

Template Funktion zur Ausgabe des Beitragsdatums

Neben dem Hinzufügen der hAtom Klassen bietet sich an, das Datum zur URL des Beitrags zu verlinken. Das hat sich in den meisten WordPress Themes inzwischen als Standard etabliert.

Zusätzlich kann noch etwas Text wie z.B. „Veröffentlicht am “ angezeigt werden.

Die komplette Template Funktion habe ich als Github Gist bereitgestellt:

Durch die if-Abfrage mit function_exists() am Anfang erstellen wir eine Pluggable Function. Damit kann die Template Funktion auf Wunsch in einem Child Theme überschrieben werden.

Autor im WordPress Theme anzeigen

Die Ausgabe des Autors erledigen wir mit der WordPress Funktion get_the_author().

echo get_the_author();

Der Name des Autors soll zu seinem Autor-Archiv verlinkt sein, welches alle Beiträge des Autors anzeigt.

Die URL zum Archiv des Autors erhalten wir mit get_author_posts_url().

get_author_posts_url( get_the_author_meta( 'ID' ) );

Autor des Beitrags in hCard

Auch für die Anzeige des Beitragsautors wollen wir strukturierte Inhalte mit Microformats bereitstellen, damit Suchmaschinen darauf Zugriff haben.

hAtom schreibt dafür die Klasse author und die Verwendung des hCard Standards vor:

$author = sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" rel="author">%2$s</a></span>',
    esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
    esc_html( get_the_author() )
);

hCard erfordert die Klassen vcard sowie url und fn für den Link.

Template Funktion zur Ausgabe des Beitragsautors

Auch für den Autor habe ich wieder die komplette Template Funktion in einen Github Gist gepackt:

Datum und Autor eines Beitrags im WordPress Theme anzeigen

Die Template Funktionen können nun an beliebiger Stelle innerhalb des WordPress Loops verwendet werden, um Datum und Autor des Beitrags anzuzeigen.

Auf Wunsch kann auch eine einzige Template Funktion erstellt werden, welche alle Metadaten des Beitrags ausgibt:

/**
 * Display date and author of posts
 */
function theme_slug_entry_meta() {

	$postmeta = theme_slug_entry_date();
	$postmeta .= theme_slug_entry_author();

	echo '<div class="entry-meta">' . $postmeta . '</div>';
}

Neben Datum und Autor kann dort auch die Ausgabe von Kategorie, Schlagwörter und Kommentaren erfolgen.

Wie man diese am Besten ausgibt, zeige ich bald in einem weiteren Beitrag.