WordPress: Comment faire fonctionner un shortcode dans un widget texte?

Les shortcodes, vous connaissez? Ce sont ces balises entre crochets que certains plugins utilisent pour intégrer facilement du contenu dans un billet ou une page de blog WordPress.

Il vous arrive d’ailleurs probablement de les utiliser dans vos articles, pour y afficher un formulaire (comme Contact Form 7) ou un slider (MetaSlider ou autre).

Cela marche tellement bien qu’il serait dommage de ne pas profiter de cette facilité pour agrémenter aussi nos widgets (les zones de barres latérales ou de bas de page) avec ces formulaires ou sliders…mais là, problème, les widgets textes de wordpress ne gèrent pas nativement les shortcodes: Quand on écrit par exemple [mon_joli_slider id=95] dans un widget texte, celui-ci renvoie donc…[mon_joli_slider id=95], c’est à dire le shortcode lui-même et non son interprétation.

Heureusement, une surcharge de code très simple permet d’arranger cela, directement dans la zone d’administration de WordPress.

L’idée est donc d’ajouter la fonction « exécuter les shortcodes » dans les widget texte.

Voici comment faire en 4 points:

  • Connectez vous à l’interface d’administration de votre blog wordpress, puis dans le menu de gauche, sélectionnez: Apparence > Editeur.
  • Dans la liste des « modèles » affichée à droite, sélectionnez « Fonctions du Thème » (functions.php), et cliquez dessus pour le charger dans l’éditeur.
  • Insérez une ligne entre « */ » et le premier « require »  pour venir ajouter la ligne de code suivante (sans oublier le « ; » à la fin…) :
add_filter («widget_text», «do_shortcode ');
  • Cliquez ensuite sur le bouton « Mettre à jour le fichier » et c’est… tout.

Il ne vous reste plus maintenant qu’à aller tester l’ajout d’un shortcode dans un widget texte de votre site WordPress.