Das WordPress-Ent­wick­ler­team hat 2008 mit den so­ge­nann­ten Short­codes ein Feature ein­ge­führt, mit dem man seinen re­dak­tio­nel­len Beiträgen pro­blem­los dy­na­mi­sche Elemente hin­zu­fü­gen kann. Obwohl WordPress seit Version 5.0 auf den Block-Editor Gutenberg setzt, der mit zahl­rei­chen Funk­tio­nen aus­ge­stat­tet ist, die früher aus­schließ­lich über Short­codes verfügbar waren, bleiben Short­codes ein wichtiger Be­stand­teil für viele Plugins und Themes.

Managed Hosting für WordPress
Erstellen Sie Ihre Website mit AI, wir über­neh­men den Rest
  • Keine Vor­kennt­nis­se nötig dank be­nut­zer­freund­li­cher AI-Tools
  • Voll­stän­dig anpassbar mit Themes und Plugins
  • Einfache Updates und minimaler Admin-Aufwand

Was sind Short­codes?

Bei den so­ge­nann­ten Short­codes, die WordPress mit Version 2.5 hin­zu­ge­fügt wurden, handelt es sich um Kurz­be­feh­le, die innerhalb von Texten platziert werden können und mit einem PHP-Code verknüpft sind. Dieser ist entweder in der functions.php oder in einer separaten .php-Datei hin­ter­legt, die in die functions.php ein­ge­bun­den wird. Werden Seiten mit einem Shortcode auf­ge­ru­fen, sorgt WordPress für die Aus­füh­rung und In­ter­pre­ta­ti­on des je­wei­li­gen Skriptes. Dadurch sehen die Be­su­chen­den anstelle des Codes den durch die PHP-Funktion erzeugten Inhalt. Der Shortcode fungiert also genau genommen als Platz­hal­ter, zum Beispiel für einfache Elemente wie einen Text­aus­zug oder auch für dy­na­mi­sche In­halts­ty­pen wie Pop-ups oder eine Bil­der­ga­le­rie.

Die Im­ple­men­tie­rung eines Short­codes in WordPress stellt keine große Her­aus­for­de­rung dar: Sie werden direkt im Editor an der ent­spre­chen­den Stelle im Beitrag eingefügt. Damit WordPress die Codes als solche erkennt, werden sie in eckige Klammern [ ] gesetzt. So hat ein Shortcode bei­spiels­wei­se die Form [aktuelle-posts]. Mit der passenden PHP-Funktion verknüpft, sollen mit diesem Code an der aus­ge­wähl­ten Position andere, kürzlich ver­öf­fent­lich­te Beiträge angezeigt werden. Mit zu­sätz­li­chen Pa­ra­me­tern lassen sich die WordPress-Short­codes außerdem spe­zi­fi­zie­ren.

Während Short­codes zwar weiterhin funk­tio­nie­ren, bietet WordPress mit dem Block-Editor mitt­ler­wei­le eine in­tui­ti­ve­re Mög­lich­keit, ähnliche Funk­tio­nen direkt über Blöcke ein­zu­fü­gen. Viele klas­si­sche Short­codes wurden durch Gutenberg-Blöcke ersetzt, sodass die Nut­ze­rin­nen und Nutzer auf noch ein­fa­che­re Weise dy­na­mi­sche Inhalte einfügen können, ohne Code zu verwenden. Wenn Sie auf die Nutzung von Short­codes nicht ver­zich­ten möchten, stellt WordPress den spe­zi­el­len Shortcode-Block bereit. Dieser er­mög­licht es, Short­codes direkt in den Block-Editor ein­zu­fü­gen.

Warum WordPress-Short­codes so nützlich sind

Mit der Ein­füh­rung des Block-Editors hat sich die Nutzung von Short­codes verändert. Viele frühere Shortcode-Funk­tio­nen wurden durch Blöcke ersetzt, sodass Nut­ze­rin­nen und Nutzer Inhalte nun direkt per Drag-and-Drop einfügen können, ohne Code zu verwenden. Dennoch sind Short­codes weiterhin nützlich, ins­be­son­de­re für spe­zia­li­sier­te Plugins oder in­di­vi­du­el­le Funk­tio­nen, die noch keine eigene Block-Al­ter­na­ti­ve haben.

Besonders in be­stehen­den WordPress-In­stal­la­tio­nen bleiben Short­codes eine sinnvolle Lösung, um Kom­pa­ti­bi­li­tät mit älteren Themes und Plugins zu ge­währ­leis­ten. Diese setzen weiterhin vielfach auf Short­codes, wenn sie noch nicht voll­stän­dig auf Blöcke um­ge­stellt wurden. Short­codes in WordPress eignen sich darüber hinaus für dy­na­mi­sche Inhalte und komplexe Funk­tio­nen. Auch, wer eigene Funk­tio­nen ent­wi­ckeln möchte, pro­fi­tiert von Short­codes: Mit diesen kann man spe­zi­fi­sche Features einbinden, ohne direkt am Code des Themes arbeiten zu müssen.

Obwohl WordPress sich zunehmend in Richtung Blöcke ent­wi­ckelt, sind Short­codes besonders für fort­ge­schrit­te­ne Nutzende und spezielle An­wen­dungs­fäl­le weiterhin eine wertvolle Ergänzung.

Eigene Short­codes in WordPress erstellen – so funk­tio­niert’s

Es ist bereits deutlich geworden, dass der Kern eines Short­codes das PHP-Skript ist, das aus­ge­führt wird, sobald WordPress auf einen zuvor de­fi­nier­ten Shortcode stößt. Es soll im Folgenden aber weniger darum gehen, wie Sie ein solches Skript pro­gram­mie­ren, denn das würde einen vom Thema weg­füh­ren­den Grundkurs in PHP-Pro­gram­mie­rung bedeuten. Vielmehr erfahren Sie in den folgenden Ab­schnit­ten, wie Sie Short­codes in WordPress einbinden, für Ihr Projekt nutzen und wieder de­ak­ti­vie­ren können. Den je­wei­li­gen PHP-Code fügen Sie entweder in die functions.php im Ver­zeich­nis des genutzten Themes oder in eine separate PHP-Datei ein, die Sie ent­spre­chend einbinden. Um si­cher­zu­ge­hen, dass die eigenen Short­codes nicht mit dem nächsten Update des Themes ver­schwin­den, sollten Sie ein Child-Theme anlegen. Das ist mit wenigen Hand­grif­fen erledigt, wie unsere Anleitung „WordPress-Child-Theme erstellen“ zeigt.

Callback-Funktion erstellen

Die PHP-Funktion, die aus­ge­führt wird, sobald WordPress einen Shortcode re­gis­triert, ist eine so­ge­nann­te Callback-Funktion, zu Deutsch: Rückruf-Funktion. Als solche wird sie einer anderen Funktion als Parameter übergeben und unter de­fi­nier­ten Be­din­gun­gen mit de­fi­nier­ten Pa­ra­me­tern auf­ge­ru­fen. Die folgende Beispiel-Funktion durch­sucht die Datenbank und erzeugt für den Shortcode [aktuelle-posts] einen Link zum zuletzt ver­fass­ten Beitrag:

function aktuelle_posts_function() {
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => 1));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string = '<a href="'.get_permalink().'">'.get_the_title().'</a>';
endwhile;
endif;
wp_reset_query();
return $return_string;
}
php

Der Text, der den Shortcode ersetzen soll, steht in der Variable $return_string (PHP kenn­zeich­net alle Variablen mit $). Die PHP-Funktion (aktuelle_posts_function) gibt diese Variable per return zurück. Nutzen Sie statt­des­sen irr­tüm­lich den echo-Befehl, landet das per Shortcode im­ple­men­tier­te Element plötzlich vor dem ei­gent­li­chen Inhalt.

Shortcode in WordPress re­gis­trie­ren

Sie müssen WordPress darauf auf­merk­sam machen, dass es sich bei der er­stell­ten Funktion um eine Shortcode-Funktion handelt, die au­to­ma­tisch aus­ge­führt werden soll, wenn eine auf­ge­ru­fe­ne Seite den Kurz­be­fehl [aktuelle-posts] enthält. Dazu erweitern Sie Ihre PHP-Datei um den folgenden Code:

add_shortcode('aktuelle-posts', 'aktuelle_posts_function');
php

Damit haben Sie nun ei­ner­seits den Namen des Short­codes [aktuelle-posts], den Sie später auch im Editor verwenden, und an­de­rer­seits die an­zu­wen­den­de Funktion aktuelle_posts_function() definiert. Damit keine Konflikte zwischen ver­schie­de­nen WordPress-Short­codes entstehen, ist es wichtig, einen ein­deu­ti­gen und ein­zig­ar­ti­gen Namen zu wählen.

Funk­ti­ons­stär­ke­re Short­codes mit Pa­ra­me­tern de­fi­nie­ren

Um Ihrem WordPress-Shortcode zu­sätz­li­che Fle­xi­bi­li­tät zu verleihen, haben Sie die Mög­lich­keit, optionale Parameter hin­zu­fü­gen. Im bisher ver­wen­de­ten Beispiel bietet es sich an, im Shortcode aus­zu­zeich­nen, wie viele Beiträge genau angezeigt werden sollen. Zu diesem Zweck benötigen Sie zwei weitere Funk­tio­nen: Ei­ner­seits die Funktion shortcode_atts(), die nut­zer­ge­ne­rier­te Shortcode-Attribute mit nativen At­tri­bu­ten kom­bi­niert und benötigte Stan­dard­wer­te au­to­ma­tisch eingibt. An­de­rer­seits wird die PHP-Funktion extract()vor­aus­ge­setzt, um die Shortcode-Attribute zu ex­tra­hie­ren. Für den Fall, dass das Ar­gu­ment­feld frei bleibt, for­mu­lie­ren Sie außerdem den Stan­dard­wert 1 ('posts' => 1):

function aktuelle_posts_function($atts){
extract(shortcode_atts(array(
'posts' => 1,
), $atts));
$return_string = '<ul>';
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string .='<li><ahref="'.get_permalink().'">'.get_the_title().'</a></li>';
endwhile;
endif;
$return_string .= '</ul>';
wp_reset_query();
return $return_string;
}
php

Spe­zi­fi­zie­ren Sie nun den Shortcode im Text zum Beispiel fol­gen­der­ma­ßen [aktuelle-posts posts="5"], erscheint nicht nur der zuletzt ver­öf­fent­lich­te, sondern eine Auf­lis­tung der fünf ak­tu­ells­ten Artikel.

Bestimmte Inhalte als Shortcode-Parameter nutzen

Sie können das vor­ge­stell­te Beispiel noch weiter mo­di­fi­zie­ren und zu­sätz­lich noch ein ganz be­stimm­tes In­halts­ele­ment als Parameter hin­zu­fü­gen. In unserem Beispiel soll dieser Content-Parameter den Titel einer <h3>-Über­schrift de­fi­nie­ren. Dazu erweitern Sie das Callback-Skript um die Variable $content und fügen vor der Auf­lis­tung <ul> die HTML-Über­schrift <h3> ein:

function aktuelle_posts_function($atts, $content = null) {
extract(shortcode_atts(array(
'posts' => 1,
), $atts));
$return_string = '<h3>'.$content.'</h3>';
$return_string .= '<ul>';
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
endwhile;
endif;
$return_string .= '</ul>';
wp_reset_query();
return $return_string;
}
php

Ähnlich wie bei einem HTML-Tag umrahmen Sie nun die ge­wünsch­te Über­schrift in Ihrem Text mit einem öffnenden und einem schlie­ßen­den Shortcode:

[aktuelle-posts posts ="5"]Überschrift der Auflistung aktueller Artikel[/aktuelle-posts]
php

WordPress-Shortcode in einem Widget verwenden

Früher mussten Short­codes manuell für Widgets aktiviert werden. Seit WordPress 5.8 lassen sich viele Inhalte jedoch direkt über den Block-Editor in Widgets einfügen, wodurch die Not­wen­dig­keit von Short­codes wie bereits erwähnt in vielen Fällen sogar entfällt. Falls ein Shortcode weiterhin genutzt werden soll, kann er einfach in einen „Shortcode“-Block innerhalb eines Widgets eingefügt werden.

Nicht mehr benötigte Short­codes aus­schal­ten

Wenn Sie einen be­stimm­ten WordPress-Shortcode nicht mehr benötigen, haben Sie zwei Mög­lich­kei­ten, selbigen zu de­ak­ti­vie­ren: Die optimale Lösung wäre, die Callback-Funktion aus der PHP-Datei und alle Einträge des Codes aus Ihren Beiträgen zu entfernen. Löschen Sie statt­des­sen nur die Callback-Funktion, würde WordPress den Shortcode nicht mehr als solchen erkennen und ihn im Klartext mitten im Artikel ausgeben. Da diese Methode bei einem häufig genutzten Shortcode einen sehr hohen Aufwand bedeutet, gibt es für solche Fälle eine zweite Mög­lich­keit: Statt Code und PHP-Funktion zu löschen, wird die Callback-Funktion durch eine nichts zu­rück­ge­ben­de Anweisung erweitert und auf diese Weise quasi blockiert:

add_shortcode('aktuelle-posts', '__return_false');
php

Prak­ti­sche Short­codes für Ihren Blog

Nachdem Sie einen kleinen Einblick über die Struktur von Short­codes gewonnen haben und wissen, wie Sie selbige in WordPress re­gis­trie­ren und einbinden, sollen Ihnen die folgenden Beispiele einen Einblick über die viel­fäl­ti­gen Mög­lich­kei­ten der Kurz­be­fehl-Technik gewähren.

Um Ihrem Projekt einen Link-Button mit in­di­vi­du­el­lem Schrift­zug hin­zu­zu­fü­gen, genügt ein Shortcode mit folgender Callback-Funktion:

function link_button_function( $atts, $content = null ) {
return '<button type="button">'.do_shortcode($content).'</button>';
}
add_shortcode('link-button', 'link_button_function');
php

Den ge­wünsch­ten Schrift­zug des Buttons setzen Sie nun einfach zwischen öffnenden und schlie­ßen­den Shortcode:

[link-button]Hier klicken![/link-button]
php

WordPress-Menü anzeigen

Mit dem folgenden Code können Sie ein aus­ge­wähl­tes Menü Ihres WordPress-Projektes unter dem Text­bei­trag anzeigen lassen:

function menu_function($atts, $content = null) {
extract(
shortcode_atts(
array( 'name' => null, ),
$atts
)
);
return wp_nav_menu(
array(
'menu' => $name,
'echo' => false
)
);
}
add_shortcode('menu', 'menu_function');
php

Wenn Sie diesen Shortcode nutzen wollen, geben Sie einfach als Parameter den Namen des je­wei­li­gen Menüs an, wie zum Beispiel:

[menu name="Hauptmenü"]
php

Google Maps in­te­grie­ren

Mit der Shortcode-Technik lassen sich auch schnell und un­kom­pli­ziert Kar­ten­aus­schnit­te des Kar­ten­diens­tes Google Maps in Ihr Projekt einbinden, ohne dass Sie den Quellcode anpassen müssen. Der passende Code für Ihre PHP-Datei sieht fol­gen­der­ma­ßen aus:

function googlemap_function($atts, $content = null) {
extract(shortcode_atts(array(
"width" => '640',
"height" => '480',
"src" => ''
), $atts));
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$src.'&key=IHR_API_SCHLUESSEL"></iframe>';
}
add_shortcode("googlemap", "googlemap_function");
php

Der Shortcode, der zu den Standard-Kurz­be­feh­len gehört, ist an die drei Parameter Höhe (height), Breite (width) und Google-Maps-Quelle (src) gebunden. Daher sollte der Code in Ihrem Editor wie folgt aussehen:

[googlemap width="640" height="480" src= https://www.google.com/maps/place/Brandenburger+Tor/@52.5158015,13.3776636,233m?hl=de]
php

WordPress-Shortcode-Plugins: der einfache Weg

Für alle, die weder einen eigenen Shortcode erstellen noch vor­ge­fer­tig­te Exemplare manuell in die functions.php bzw. die jeweilige PHP-Datei im­ple­men­tie­ren wollen, gibt es noch eine weitere Mög­lich­keit, die nütz­li­chen Kurz­be­feh­le für das eigene Web­pro­jekt frei­zu­schal­ten: Auf der of­fi­zi­el­len WordPress-Homepage finden Sie eine große Auswahl an Plugins, die Ihrer WordPress-In­stal­la­ti­on sowohl einzelne als auch mehrere ver­schie­de­ne Short­codes hin­zu­fü­gen. Bei­spiel­haft können die folgenden Plugins genannt werden:

Hinweis

Sie in­ter­es­sie­ren sich für weitere spannende WordPress-Plugins? Ein Blick auf unsere Rat­ge­ber­ar­ti­kel kann helfen:

New call-to-action
Zum Hauptmenü