Shortcode im Titel eines Beitrags / Blog-Posts benutzen – WordPress

Kein Kommentar Autor: Jürgen (jdo)

Man lernt einfach nie aus. Eine Funktion, mit bis dato völlig unbekannt, weil ich sie bisher auch selbst nicht gebraucht habe: Shortcode im Titel eines Blog-Posts benutzen oder umwandeln lassen! Ein Bekannter hat mich gefragt, dass er zwar einen Shortcode im Beitrag selbst anzeigen oder umwandeln lassen kann, aber im Titel funktioniert das nicht.

Als WordPress-Anwender weißt Du was ich meine. Möchte ich mir zum Beispiel das Jahr immer aktuell anzeigen lassen, würde ich einen Shortcode wie [jahr] anlegen. In der Datei functions.php hinterlege ich im Anschluss, dass [jahr] durch das aktuelle Jahr, also 2024, ersetzt wird.

Versuche ich das nun im Titel meines Blog-Posts, wird die Zeichenkette mit den Klammern ausgegeben. Das kannst Du Dir wie folgt vorstellen.

Der Shortcode wird nicht korrekt umgewandelt

Der Shortcode wird nicht korrekt umgewandelt

Das ist natürlich so nicht gewünscht. Eigentlich sollte dort im Titel stehen: Das aktuelle Jahr ist 2024

Shortcode im Titel benutzen

Im Prinzip ist es ganz einfach, dass es auch mit dem Titel funktioniert. Die Funktion ist in WordPress implementiert, aber nicht aktiviert. Warum? Keine Ahnung, musst Du die Entwickler fragen. Auf jeden Fall ist die Funktion mit einem einfachen Eingriff aktiviert.

Eine Voraussetzung gibt es allerdings. Du brauchst Zugriff auf die Datei functions.php Deines Themes. Dort fügst Du diese Zeile ein:

add_filter( 'the_title', 'do_shortcode' );

Damit haben wir erreicht, dass der Titel für die Umwandlung überhaupt berücksichtigt wird.

Willst Du nun einen Shortcode für das momentane Jahr haben, musst Du ihn erstellen:

add_shortcode( 'jahr' , 'aktuelles_jahr' );
function aktuelles_jahr() {
   $jahr = date("Y");
   return "$jahr";
}

In der functions.php würde das zum Beispiel so aussehen:

Shortcode für Titel aktivieren und aktuelles Jahr ausgeben lassen

Shortcode für Titel aktivieren und aktuelles Jahr ausgeben lassen

Das funktioniert auch für Yoast SEO!

Nun bin ich bei meiner Suche noch auf ein weiteres Ding gestoßen, das vor allen Dingen die Anwender von Yoast SEO freuen dürfte. Auch da kannst Du im Titel und in der Meta-Beschreibung Shortcodes einsetzen und zum Beispiel ein Jahr dynamisch anzeigen lassen. Dafür sind zwei weitere Filter in der Datei functions.php notwendig:

add_filter( 'wpseo_title', 'do_shortcode' );
add_filter( 'wpseo_metadesc', 'do_shortcode' );

Die Filter sollten sich selbst erklären. Der erste ist für den SEO-Titel und der zweite für die Meta-Beschreibung zuständig.

Wie gesagt, wusste ich das nicht und musste es recherchieren. Aber ich halte es da ganz wie ein Lothar Matthäus und sage mir: Again what learned! Braucht man sicherlich nicht jeden Tag, schadet aber auch nicht, wenn man es im Hinterkopf auf Abruf bereit hält.

Dynamisches Jahr im WordPress Theme
Willst Du im Theme ein Jahr dynamisch anzeigen lassen, zum Beispiel im Footer, würdest Du das via PHP lösen und nicht mit einem Shortcode. Der Code dafür wäre:

<?php echo date('Y'); ?>




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.