News

Shortcode API

Bereits mit der Version 2.5 wurde die Shortcode API in WordPress eingeführt. Diese API ermöglicht es Funktionen aus Plugins oder Themes ohne PHP-Code in Artikel, Seiten oder direkt in Templates zu integrieren.

WordPress unterstützt beispielsweise von Haus aus schon den Shortcode Tag [gallery], um die Galerie in Artikel und Seiten einzufügen. Die Galerien lassen sich mit Hilfe von Attributen, wie man sie aus HTML kennt, individuell anpassen.
Die Bilder in der Galerie verlinken auf die Datei, werden in zwei Spalten angeordnet und werden verkleinert dargestellt.

[gallery link="file" columns='2' size="thumbnail"]

Auch die Bildunterschriften in WordPress werden mit Hilfe von Shortcode in die Artikel eingefügt. An diesem Beispiel sieht man, dass die Shortcode Tags auch Code umschliessen können, was doch ein wenig an HTML erinnert.

[caption id="attachment_123" align="alignnone" width="170" caption="Bildunterschrift"]
<img src="http://example.de/image.jpg" alt="text" width="170" height="240" />
[/caption]

Eigenen Shortcode erstellen

Um einen eigenen Shortcode zu erstellen wird die Funktion add_shortcode('tag', 'function_name') genutzt. Diese Funktion werde ich kurz an einem Beispiel erläutern.

Beispiel:

<?php
function halloshortcode() {
return 'Hallo Welt!';
}
add_shortcode('hallo', 'halloshortcode');
?>

Wird die Funktion halloshortcode() aufgerufen gibt diese „Hallo Welt!" zurück. In der Funktion add_shortcode() gibt man im ersten Parameter den Namen des Tags und im zweiten den Namen der Funktion an. Baut man nun den Shortcode Tag [hallo] in einen Artikel ein, so wird statt diesem Tag der Text „Hallo Welt!" ausgegeben.

Eine Möglichkeit Shortcode Tags in einem Template einzufügen ist folgende:

<?php echo do_shortcode('[hallo]'); ?>

Werbung mit Shortcode

Eine Möglichkeit die oben gezeigte Shortcode Funktion zu nutzen, ist Folgende. Man fügt den Code den man von Adsense oder einen anderen Anbieter bekommt in die Anführungszeichen ein. Soll in einen Artikel Werbung eingefügt werden muss nur noch der Shortcode Tag [werbung] in den Artikel eingefügt werden.

function zeigewerbung() {
    return '<script type="text/javascript"><!--
google_ad_client = "pub-123456789101112";
google_ad_slot = "123456789";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
';
}

add_shortcode('werbung', 'zeigewerbung');

BBCode Plugin

Mit Hilfe des BBCode Plugins wird zum Beispiel die aus Foren bekannte Auszeichnungssprache BBCode in WordPress integriert. Diese kann nun statt HTML zum Formatieren der Artikel genutzt werden.

Weitere Infos zur Shortcode API findet ihr im WordPress Codex.

4 Kommentare zu “Shortcode API”

  1. Thomas am 31. Dezember 2008 um 11:42 | Permalink

    Hallo Sören, vielen dank für die Ausführung zur Nutzung der API. Das ist auch für mich was neues und wird sicher viele Leser finden. Ich habe so einen ähnlichen Artikel für die Schaltung von Werbung bei mir im Blog. http://blogger-world.de/adsense-werbung-punktgenau-in-artikel-einbinden/

    Ich wünsche dir einen Guten Rutsch ins Neue Jahr
    Thomas

  2. Tommy am 2. Januar 2009 um 09:51 | Permalink

    Hallo das ist für mich noch total neuland ,werde mich nachher mal genauer mit der Materie befassen und dann nochmal nen netten Komentar da lassen

    Frohes neues

  3. Markus am 28. April 2009 um 14:48 | Permalink

    Tolles Feature, ist in Teilen ja auch schon aus Joomla bekannt, hier kann man für seine Funktionen auch Shortcode definieren und z.B. in Beiträgen einbinden, aber leider auch nicht für eigens definierte PHP Codes.

    Ist nen super Feature, wenn man immer wieder kehrenden Text hat, der sich in der Beschaffenheit nicht ändert… Frage kann man anhand der Funktion auch einzelnen Variabeln übergeben?

  4. Sören Wrede am 28. April 2009 um 15:38 | Permalink

    Wie meinst du das mit dem Übergeben der Variabeln?

    Meinst du sowas?
    [caption id="attachment_123" align="alignnone" width="170" caption="Bildunterschrift"]

Hinterlasse eine Antwort

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

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>