,
20 Jul

Eigene WordPress Shortcodes erstellen? So geht’s

Ich zeige euch in diesem Post, wie ihr ganz einfach euer eigenes Shortcode-Plugin für WordPress erstellen könnt, um oft verwendete Textbausteine, Bilder oder sogar Anzeigen-Codes ganz schnell einzufügen. Das macht eure Posts im Editor übersichtlicher und spart Zeit und Nerven – falls ihr euch die Shortcodes merken könnt. Wenn nicht, gebe ich euch dazu auch einen Tipp. 😉

Achtung: Das hier ist eher etwas für Menschen, die wissen, was sie tun. Ich übernehme absolut keine Haftung für das, was ihr mit euren Blogs anstellt.

Eigene WordPress Shortcodes erstellen? So geht's

 

 

Das Grundgerüst des Shortcode-Plugins

Die Grundlage des eigenen Shortcode-Plugins ist eine PHP-Datei mit möglichst aussagekräftigem Namen (z.B. mein_shortcode_plugin.php):

WordPress Shortcode-Plugin: Das Grundgerüst

WordPress Shortcode-Plugin: Das Grundgerüst

 

Aber woraus genau besteht dieses Grundgerüst? Fangen wir ganz oben an.

 defined( 'ABSPATH' ) or die( 'No direct access allowed.' );

Mit dieser Zeile wird verhindert, dass jemand direkt auf die PHP-Datei zugreifen kann. Wer es dennoch versucht, bekommt die Nachricht „No direct access allowed“ zu sehen, die natürlich beliebig abgewandelt werden kann. Bei WordPress-Plugins findet man hier oft „No script kiddies please“. 😉

 

Die nächsten vier Zeilen Code sind optional, aber hilfreich:

 /* Plugin Name: Mein Shortcode Plugin
 Version: 0.1
 Author: Frau Nerd
 Description: Die Shortcodes sind [shortcode1], [shortcode2]*/

Das hier wird euchspäter im Bereich „Plugins“ von WordPress angezeigt. Ich schreibe gerne die Version der Datei und in der Beschreibung noch die jeweiligen Shortcodes dazu, um den Überblick zu behalten. So muss ich nicht immer im Code der Datei nachsehen.

 

Und dann kommt auch schon der maaaaagische Teil.  Diese paar Zeilen sind für eure Shortcodes verantwortlich:

function get_first_shortcode( $atts) {
   $sc_text ='<b>Erster Shortcode</b>';
   return $sc_text;
  }

function get_second_shortcode( $atts) {
   $sc_text ='<b>Zweiter Shortcode</b>';
   return $sc_text;    
  }

add_shortcode('shortcode1', 'get_first_shortcode');  add_shortcode('shortcode2', 'get_second_shortcode');

Manchen von euch reicht das vielleicht schon, anderen erscheint es vielleicht noch undurchsichtig. Deshalb gibt es im nächsten Abschnitt ein paar Erklärungen dazu. 😉

 

 

Die Shortcodes an sich

Shortcodes in WordPress-Posts (oder Seiten) stehen stets in eckigen Klammern, z.B.:

[shortcode1]

Damit WordPress weiß, dass es sich bei „[shortcode1]“ tatsächlich um einen Shortcode handelt, muss er noch als solcher hinzugefügt werden:

add_shortcode('shortcode1', 'get_first_shortcode');

Das heißt, sobald im Text irgendwo „[shortcode1]“ steht, wird „get_first_shortcode“ aufgerufen und das Ergebnis ‚abgedruckt‘.

 

Hinter diesem Shortcode steckt somit jetzt die folgende Funktion:

function get_first_shortcode( $atts) {
   $sc_text ='<b>Erster Shortcode</b>';
   return $sc_text;
  }

Die Funktion gibt den Wert von „$sc_text“ zurück.

 

Das heißt: Wenn ich irgendwo in einem Post „[shortcode1]“ schreibe, steht dort später (= im Post oder auf der Seite):

<b>Erster Shortcode</b>

beziehungsweise, außerhalb des Quelltextes:

Erster Shortcode

– nicht mehr und nicht weniger. Dafür muss das Plugin allerdings im Blog installiert und aktiviert werden. Letztlich könnt ihr frei entscheiden, welchen Text, welche Grafik oder welche Links ihr einfügen wollt. Ihr müsst aber darauf achten, dass alles in Anführungszeichen steht und ihr den Text bzw. die Variable auch wirklich mit dem Return Statement „zurückgebt“.

 

 

Aus dem Code ein Plugin machen

Um dieses Shortcode-Plugin jetzt als solches verwenden zu können, wird die PHP-Datei „mein_shortcode_plugin.php“ zunächst komprimiert. Die so entstandene „mein_shortcode_plugin.zip“ kann dann im Blog installiert werden (Plugins -> Installieren -> Plugin hochladen).

Anschließend müsst ihr das neue Shortcode-Plugin noch aktivieren. Und dann könnt ihr es auch schon benutzen!

 

Hat euch dieser Post geholfen oder gefallen? Habt ihr noch Fragen? Hinterlasst mir einen Kommentar! 😉