WordPress & Webwork

WordPress: Shortcode außerhalb des Loops

In WordPress 2.5 wurde die Shortcode-API eingeführt. Damit ist es möglich in WordPress Kürzel (Shortcode) zu definieren und diese dann im Beitrag einzubinden. Diese Kürzel geben dann im Frontend den festgelegten Code aus.

Ein Beispiel dafür ist der Shortcode [gallery]. Wenn man diesen Shortcode im Beitrag einbaut, dann gibt er alle Bilder aus, die mit diesem Beitrag verknüpft sind. Im vorherigen Artikel habe ich auch beschrieben, wie man mit einem WordPress-Plugin die Artikel auf Kindle schicken kann. Allerdings kann man das Plugin nur auf zwei Wegen einbinden: als Widget oder als Shortcode [kindlethis].

Leider funktionieren Shortcodes nur innerhalb des Loop. Will man jetzt ein das Kindle-Plugin z. B. im Footer einbinden, dann muss man sich der Funktion do_shortcode(); bedienen. Diese macht die Shortcodes auch außerhalb des Loops verfügbar.

Hier der Code, wenn man das Kindle-Plugin außerhalb des Loops einbinden möchte:

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

Das war's. Viel Spaß damit. :-)

Hinweis: wer Code-Beispiele der WordPress-Shortcodes abbilden möchte, der muss die eckigen Klammern ([ und ]) maskieren: [ = &#91; und ] = &#93;.

4 Reaktion(en)

  1. Jonas

    Super, genau danach habe ich gesucht. Leider klappt das Ganze nicht mit mehreren Shortcode-Optionen. Ich möchte z.B. den Shortcode [ft calendar] (funktioniert!) mit ein paar vorgegeben Optionen einbinden: [ftcalendar width='600' height='600'] (funktioniert nicht!) – Wie gehe ich da am besten vor?

    1. Perun

      @Jonas,

      bei dir müsste es dann folgendermaßen ausschauen:

      echo do_shortcode('[ftcalendar]'); bzw. echo do_shortcode('[ftcalendarwidth='600' height='600']');

      Hast du es schon so probiert?

  2. Pingback: Anzeige nach dem More-Break einer Wordpress-Seite automatisch einfügen | Linux und Ich

  3. David

    Hey, ich habe das Problem, dass das bei mir nicht funktioniert. Ich versuche einen Slider ins Template einzubinden, aber anstatt den Slider auszugeben gibt er nur den Shortcode aus, also es kommt nur [shortcode] anstatt der eigentliche Slider. Hab schon ne Stunde gegoogelt, aber keine Hilfe. Hast du da eine Idee?

Die Kommentare in diesem Beitrag sind geschlossen.