Tout savoir sur WordPress
Tutoriel WordPress

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]

Cet article a été mis à jour il y a 4438 jours - Il n'est peut être plus à jour !

Article écrit par Jonathan B.

Jonathan est le co-fondateur de WP Media, startup connue pour être l’auteur de WP Rocket et Imagify. Il est aussi co-organisateur du WordCamp Lyon et Paris.

10 Commentaires

  1. L’avantage de faire de cette façon est l’utilisation de variable PHP, par exemple :

    echo do_shortcode('[shortcode]'.$ma_variable.'[/shortcode]');

    ou

    echo do_shortcode('[shortcode param1="'.$ma_variable.'"]');

    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 :

    add_filter('widget_text', 'do_shortcode');
    

    Vous les voulez dans les titres de vos article ?

    add_filter('the_title', 'do_shortcode');
    

    etc ;)

  2. 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.

  3. @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 ^^

  4. 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.

  5. 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)

  6. 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

  7. Attention car do_shortcode() est une fonction hyper gourmande. Même les auttomaticiens préconisent de ne pas l’utiliser sauf exception particulière.