WordPress-Shortcodes

In WordPress 2.5 wurden sogenannte Shortcodes eingeführt. Das sind Kürzel, die es erlauben, eine php-Funktion aufzurufen, indem man etwas wie [shortcode] (also einen bestimmten Text in eckigen Klammern) im Artikeltext eingibt. Das kann einem helfen, bei bestimmten immer wieder auftauchenden Aufgaben Zeit zu sparen oder coole Features mit knappem Code einzubauen.

Um einen Shortcode zu erstellen, müssen wir php beherrschen, deswegen an dieser Stelle schonmal eine Entschuldigung an all jene, die das nicht können. WordPress-Installationen besitzen eine Datei namens functions.php. Die öffnen wir und können ihr (wer hätte das gedacht?) Funktionen hinzufügen. Dann tun wir das doch…

1
2
3
function newshortcode() {
    return 'Ich bin ein neuer Shortcode!';
}

So eine Datei functions.php gibt es auch noch in jedem Theme (Sollte es zumindest geben. Wenn nicht: Einfach anlegen). In der können wir nun etwas hinzufügen wie:

1
add_shortcode('tescht', 'newshortcode');

Ich definiere hiermit also ein Kürzel, um die Funktion aufzurufen, die soeben erstellt worden ist. Wenn man jetzt im Editor im HTML-Modus Folgendes eingibt:

1
[tescht]

Dann erscheint im Artikel statt des Kürzels [tescht]: Ich bin ein neuer Shortcode!

Man kann auf Anhieb sehen, wie mächtig diese Möglichkeit ist, denn in der ursprünglichen Funktion kann man selbstverständlich alles realisieren, was in php geht.

Keinen verwandten Inhalt gefunden.

Ihnen hat dieser Artikel gefallen oder geholfen? Prima! Dann denken Sie doch an mich, wenn Sie eine Webseite benötigen!

Dieser Eintrag wurde veröffentlicht in Wordpress und getagged , , . Bookmarken: Permanent-Link. Kommentieren oder ein Trackback hinterlassen: Trackback-URL.

2 Kommentare

  1. Stefan
    Erstellt am 20. September 2010 um 10:02 | Permanent-Link

    Habe ich eine Chance eine Shortcode in einem anderen Shortcode auszugeben.

    Zum Beispiel:


    function newshortcode() {
    return 'Test
    [googleMap]550|200|16|1|1|51.840831,6.696674|Testbeschreibung[/googleMap]';
    }
    add_shortcode('map1', 'testmap');

    Habe ich da eine Chance das umzusetzten?
    Zur Zeit wird halt einfach nur [googleMap]550|200|16|1|1|51.840831,6.696674|Testbeschreibung[/googleMap] im Artikel oder der Seite ausgegeben, aber leider keine Map gebildet.

    Hoffe mir kann jemand helfen. Bedanke mich schonmal im Vorraus.

  2. Stefan Holzhauer
    Erstellt am 20. September 2010 um 10:30 | Permanent-Link

    Wie man bei verschachtelten Shortcodes (die der Parser korrekt interpretiert, wenn man’s richtig macht) vorgehen muss, findet sich in der WordPress API: http://codex.wordpress.org/Shortcode_API#Limitations

Ihr Kommentar

Ihre E-Mail-Adresse wird niemals veröffentlicht oder verteilt.

Du kannst diese HTML Tags und Attribute verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Time limit is exhausted. Please reload CAPTCHA.

Durch die weitere Nutzung der Seite stimmen Sie der Verwendung von Cookies und eingebundenen Skripten zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn Sie diese Website ohne Änderung der Cookie-Einstellungen verwenden (Navigation) oder auf "Akzeptieren" klickst, erklären Sie sich damit einverstanden. Dann können auch Cookies von Drittanbietern wie Youtube oder Google gesetzt werden. Wenn Sie das nicht wollen, sollten Sie entweder nicht auf "Akzeptieren" klicken und die Seite nicht weiter nutzen, oder Ihren Browser im Inkognito-Modus betreiben, und/oder Anti-Tracking- und Scriptblocker-Plugins nutzen.

Mit einem Klick auf "Akzeptieren" werden zudem extern gehostete Javascripte freigeschaltet, die weitere Informationen, wie beispielsweise die IP-Adresse an Dritte weitergeben können. Welche Informationen das genau sind liegt nicht im Einflussbereich des Betreibers dieser Seite, das bitte bei den Anbietern (jQuery, Google, Youtube, Amazon, Twitter *) erfragen. Wer das nicht möchte, klickt nicht auf "akzeptieren" und verlässt die Seite.

Wer wer seine Identität im Web schützen will, nutzt Browser-Erweiterungen wie beispielsweise uBlock Origin oder ScriptBlock und kann dann Skripte und Tracking gezielt zulassen oder eben unterbinden.

* genauer: eingebettete Tweets, eingebundene jQuery-Bibliotheken, Amazon Artikel-Widgets, Youtube-Videos, Vimeo-Videos

Schließen