Utiliser un shortcode en dehors de la loop
Cette astuce permet d’ajouter un shortcode à tout moment dans votre template que ce soit à l’intérieur ou à l’extérieur de la loop.
Les shortcodes WordPress sont des macro-codes qui facilitent l’affichage de modules html ou javascript pouvant être insérées dans les articles ou les pages. Un shortcode est déclaré sous cette forme : [shortcode]
Par défaut, les shortcodes doivent être utilisés dans l’éditeur de votre article ou de votre page. Si vous souhaitez vous servir d’un shortocode à tout moment dans un template, copier le code ci-dessous à l’endroit où vous souhaitez que votre shortcode soit visible :
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
<?php echo do_shortcode('[mon_shortcode]'); ?>
[/pastacode]
10 Commentaires
L’avantage de faire de cette façon est l’utilisation de variable PHP, par exemple :
ou
Pour aller un peu plus loin, on peut justement essayer de faire traiter les shortcodes là où ce n’est pas par défaut comme par exemple les widgets.
Pour palier à ça, ajouter une ligne dans votre functions.php :
Vous les voulez dans les titres de vos article ?
etc ;)
Pour l’insertion de shortcode dans un widget, vous pouvez regarder cet article : Autoriser les shortcodes dans les widgets
C’est intéressant, on pourrait donc s’en servir pour rajouter des meta dans le head ? Je pense en particulier à la meta author que j’aimerais renseigner, ayant des guests qui n’ont pas de compte sur le blog mais y ont fait paraitre des articles.
@Thierry: Les balises meta autres que “description” ont aucun intérêt :)
@thierry: tu pourrais mais le filtre “wp_head” est là pour ça si tu veux ;)
Pas besoin d’aller modifier le template et d’inésrer un shortcode “juste” pour ça, c’est bien plus comlexe ton idée ^^
Bonjour tout le monde, je ne sais pourquoi mais mon shortcode ne fonctionne pas
Mince, j’ai essayé de deviner pourquoi ton shortcode ne fonctionne pas mais je n’ai pas réussi, peut-être mon échec provient du manque d’informations sur le problème.
Salut, je cherchais à insérer un shortcode en widget, je suis tombé sur l’autre article que Jonathan cite en lien, et j’ai essayé cette méthode, ça marche nickel, j’ai juste balancé le code ci-dessus dans le widget texte !!
Merci de votre dévotion à la cause des néophytes dont je fais partie (vous êtes grands tout ça tout ça)
En me relisant je me suis dit que j’étais pas clair, c’est un mix des 2 méthodes pour se servir d’un shortcode en widget, j’ai utilisé le code
dans le widget texte. Il n’y a pas à toucher au PHP
Attention car do_shortcode() est une fonction hyper gourmande. Même les auttomaticiens préconisent de ne pas l’utiliser sauf exception particulière.