Wenn Du über eine Suchmaschine nach einer Lösung für ein aktuelles Problem suchst, ist das Veröffentlichungsdatum in den Suchergebnissen sehr hilfreich. Suchst Du zum Beispiel einen Artikel zum Thema Live Photos auf dem iPhone, wird Dir kein Treffer helfen, der vor 2015 veröffentlicht wurde, da es zu diesem Zeitpunkt noch keine Live Photos unter iOS gab. Es wird aber durchaus sehr hilfreiche Artikel geben, die vor 2015 veröffentlicht und später dann aktualisiert wurden – das wird Dir in der Liste der Suchergebnisse aber nicht angezeigt. In diesem Artikel geht es um genau dieses Problem – wie kannst Du das angezeigte Datum Deiner Artikel variabler gestalten und ein aktuelles Datum in den Suchmaschinen anzeigen.
Diese Frage hatte ich mir auch gestellt, brauchte also einen Kniff, um das Veröffentlichungsdatum (WordPress: Post-Date) durch das Aktualisierungsdatum (WordPress: Modified-Date) zu ersetzen.
Auf EngageWP fand ich folgenden Code:
Der Code sorgt dafür, dass das Aktualisierungsdatum verwendet wird, wenn es vom Veröffentlichungsdatum abweicht (Zeile 13):
if ( get_the_date( 'Y-m' ) !== get_the_modified_date( 'Y-m' ) ) { # Modifed date
Die Idee fand ich gut, aber was wäre, wenn ich nach zwei Wochen einen Rechtschreibfehler korrigiere – dann sollte das Datum natürlich nicht geändert werden. Ich brauchte also eine variablere Lösung. Der Code von EngageWP sollte als Basis dienen. Da ich auch schon einige aktualisierte Posts hatte, musste mein Code auch für ältere Artikel funktionieren.
Auf meiner Suche hatte ich auch Resultate gefunden, die die Differenz der beiden Daten berücksichtigen – lagen z. B. zwischen Veröffentlichungsdatum und Aktualisierungsdatum mehr als 10 Tage, sollte das Aktualisierungsdatum verwendet werden. Diesen Ansatz fand ich besser, da die meisten Fehler kurz nach dem Veröffentlichen auftauchen und korrigiert werden. Auf WPBeginner fand ich folgenden Code:
In diesem Code wurde die Differenz der Daten in Sekunden berechnet (Zeile 8):
if ($u_modified_time >= $u_time + 86400) {
86.400 Sekunden sind ein Tag. Durch das Ändern des Wertes hätte man eine beliebige Zeitspanne eintragen können – das reichte mir aber immer noch nicht.
Ich wollte selbst bestimmen können, wann das Aktualisierungsdatum automatisiert verwendet werden soll. Für ältere Artikel, die schon aktualisiert wurden, sollte ein Datum manuell wählbar sein. Bei meinen Überlegungen blieb ich an den „Benutzerdefinierten Feldern“ von WordPress hängen.
Ich erstellte mir ein Feld „Update“, das in jedem Post verwendet werden kann. Wird es nicht ausgefüllt, wird bei jeder Aktualisierung weiterhin das Veröffentlichungsdatum angezeigt. Damit ich das Feld in Artikeln benutzen kann, muss ich es hinzufügen und den Artikel speichern – für neue Artikel eine sinnvolle Lösung, für ältere jedoch unmöglich – jeder ältere Artikel würde das aktuelle Datum als Aktualisierungsdatum erhalten.
Also entschied ich mich für folgende Variante:
- bei neuen Artikeln verwende ich nun das benutzerdefinierte Feld „Update“ mit dem Wert 1, um das aktuelle Datum als Aktualisierungsdatum anzuzeigen
- bei älteren Artikeln kann ich ein Datum meiner Wahl in das Feld „Update“ eintragen, dieses wird dann veröffentlicht
Also passte ich den Code von EngageWP folgendermaßen an:
In Zeile 8 prüfe ich auf mein benutzerdefiniertes Feld „Update“:
if ( genesis_get_custom_field('Update') ) {
Existiert kein Feld „Update“, soll das Veröffentlichungsdatum angezeigt werden (Zeile 17):
$published_on = get_the_time('j. F Y',false);
Ist es aber vorhanden, soll geprüft werden, ob es den Wert 1 enthält und wenn ja, soll das aktuelle Datum verwendet werden (ab Zeile 9):
if ( genesis_get_custom_field('Update') == '1' ){ $last_updated .= 'Aktualisiert am ' . the_modified_date('j. F Y','','',false); return $last_updated;
Wenn es nicht 1 ist, soll der darin enthaltene Wert verwendet werden (ab Zeile 12):
} else { $last_updated .= 'Aktualisiert am '. genesis_get_custom_field('Update'); return $last_updated;
Das war’s eingenlich auch schon. Ich wollte aber noch, dass bei einem aktualisiertem Datum auch „Aktualisiert am“ vor dem Datum steht.
Ab der Zeile 22 teilt man WordPress mit, was angezeigt werden soll.
Das ganze noch in die functions.php eintragen und fertig!