Les shortcodes font partie de WordPress depuis longtemps, et ils restent très pratiques pour afficher du contenu dynamique dans un article, une page, un widget, un bloc Gutenberg ou une template PHP.
On les reconnaît facilement : ils utilisent une syntaxe entre crochets, par exemple [gallery], [contact-form-7], [products] ou encore [hello].
Dans un contenu WordPress, le shortcode est interprété au moment de l’affichage. WordPress appelle alors la fonction associée, récupère son retour HTML, puis l’insère dans la page.
C’est simple, efficace, et parfois encore plus rapide à mettre en place qu’un bloc sur mesure. Même si, soyons honnêtes, dès qu’un besoin devient éditorialement récurrent ou complexe, un bloc Gutenberg dynamique devient souvent plus propre.
Qu’est-ce qu’un shortcode WordPress ?
Un shortcode est un petit code textuel que WordPress remplace par un contenu généré dynamiquement.
Par exemple, ce shortcode :
[hello]Langage du code : JSON / JSON avec commentaires (json)
peut afficher :
Hello readers!
L’avantage est évident : on évite de coller du HTML ou du PHP dans l’éditeur, et on centralise la logique dans une fonction PHP.
La fonction WordPress add_shortcode() permet d’enregistrer un shortcode et de l’associer à une fonction de rappel. La documentation officielle précise que le callback peut recevoir trois arguments : les attributs, le contenu éventuel, et le nom du shortcode. Voir la documentation WordPress de add_shortcode().
Où placer le code d’un shortcode ?
On voit souvent des exemples qui placent le code dans le fichier functions.php du thème. Cela fonctionne, mais ce n’est pas toujours le meilleur choix.
Si le shortcode appartient vraiment au thème, par exemple pour un affichage purement visuel lié au design, le fichier functions.php d’un thème enfant peut convenir.
En revanche, si le shortcode fournit une fonctionnalité de contenu, mieux vaut le placer dans une petite extension dédiée ou dans un mu-plugin. Ainsi, le shortcode continue de fonctionner même si vous changez de thème.
Pour un site de production, évitez de modifier le thème parent. Utilisez plutôt :
- un thème enfant ;
- un plugin spécifique au site ;
- un mu-plugin dans
wp-content/mu-plugins/.
C’est plus maintenable. Et ça évite le fameux “j’ai mis à jour le thème et mon shortcode a disparu”. Grand classique. Très mauvais feuilleton.
Lire la suite