Sådan bruger du shortcodes i templates

I WordPress 2.5 blev der introduceret et nyt begreb kaldet shortcodes, som bl.a. bruges af plugins. Kort sagt blev shortcodes indført for at forenkle måden hvorpå man indlejrer plugins i indlæg og sider.

En shortcode kan eksempelvis se sådan ud: [min-shortcode] – hvorefter det givne plugin selv vil sørge for at indsætte noget indhold i stedet for [min-shortcode].

Det betyder at man utroligt nemt kan indsætte stumper med dynamisk funktionalitet og indhold i sine indlæg og sider. Det er så bedårende enkelt, at man kan undre sig over det ikke er blevet indført noget før.

Men.. for der er jo et men.. det virker ikke i templates. For hvis du indsætter en shortcode i en template, sker der absolut intet. Den tekniske forklaring er at templatens indhold ikke parses af WordPress, og koden bliver derfor ikke “oversat”.

Det er selvfølgelig ikke et problem med plugins der ikke benytter shortcodes, men jeg har på det seneste opdaget at flere og flere (især nyere plugins) udelukkende supporterer indlejring via shortcodes, fremfor – som førhen – via et kald til en funktion via PHP. Det er et stort problem, for nogle gange har man altså behov for at kunne indsætte et plugin i en template.

Løsningen er heldigvis dejligt simpel. Via et kald til en funktion i shortcode API’et kan du få eksekveret en shortcode sådan:

<?php echo do_shortcode(“[min-shortcode]“);?>

Enkelt!