Werbung via Shortcode und benutzerdefinierte Felder in WordPress

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 15 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

Seit Version 2.5 wird WordPress mit der Shortcode-API ausgeliefert, näheres dazu hatte ich im Artikel „WordPress 2.5 Shortcode API“ erläutert. Nun hatten ich ihm Rahmen mit einem lieben Leser eine Anforderung, die sicher nicht selten vorkommt und die man mit Hilfe dieser Shortcode-API und den benutzerdefinierten Feldern sehr schön lösen kann.

Pro Artikel hinterlegt der Autor drei benutzerdefinierte Felder, in einem weiteren Artikel schon mal näher erläutert: bild, link, linktext. Im Text kann er den Shortcode [werbung] setzen. Diesen erkennt WordPress und mit Hilfe der folgenden Funktion werden die entsprechenden Daten geladen und die Werbung wir dann an dieser Stelle eingebunden.

Shortcode und benutzerdefinierte Felder in WordPress

Die folgende Funktion kann als Plugin oder in der functions.php des Themes abgelegt werden.


function example_link() {
	global $wp_query;

	$postID     = $wp_query->post->ID;
	$mylink     = get_post_custom_values('link', $postID);
	$mypic      = get_post_custom_values('bild', $postID);
	$mylinktext = get_post_custom_values('linktext', $postID);

	return '<a href="' . $mylink[0] . '"><img title="' . $mylinktext[0] . '" src="' . $mypic[0] . '" alt="" /></a>';
}

add_shortcode('werbung', 'example_link');

Im Text erscheint nun auf recht einfache Weise das Bild mit Link und Linktext. Die Lösung zeigt nur einen Lösungsweg und kann sicher in der einen oder anderem Form Anwendung finden. Trotzdem sollte man überlegen, wie man die Shortcodes nutzen will und die Funktion darauf hin anpassen. Ähnlich könnte auch die Daten für Link, Bild, und Linktext aus anderen Datenfeldern kommen, die Shortcode-API erleichtert es aber, dass Autoren derartige Inhalte in den Artikel einbinden können.

Von Frank Bültge

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.