Avant que l’éditeur de blocs ne propose une interface visuelle pour insérer une galerie ou un lecteur audio, ce système textuel permettait déjà d’intégrer un contenu dynamique dans une simple zone de texte, sans que l’auteur n’écrive une seule ligne de PHP.
Déclarer et utiliser un shortcode
La fonction add_shortcode() associe une étiquette à une fonction de rendu, qui reçoit les éventuels attributs saisis entre les crochets :
add_shortcode( 'citation', function ( $attributs ) {
$a = shortcode_atts( array( 'auteur' => 'Anonyme' ), $attributs );
return '<blockquote>— ' . esc_html( $a['auteur'] ) . '</blockquote>';
} );
Utilisé dans un contenu sous la forme [citation auteur="Voltaire"], ce code produit une citation formatée à l’affichage. La fonction shortcode_atts() est essentielle : elle fusionne les attributs fournis avec des valeurs par défaut et filtre les clés inconnues.
À ne pas confondre
- Un shortcode ne s’exécute pas automatiquement partout : il faut que le contenu passe par le filtre
do_shortcode, ce qui n’est pas garanti dans les champs personnalisés ou les widgets texte sans appel explicite. - L’éditeur de blocs propose désormais un bloc dédié « Shortcode » pour continuer à utiliser d’anciens shortcodes, mais les nouveaux développements privilégient généralement la création de blocs natifs.
- Un shortcode qui affiche directement du HTML avec
echoplutôt que de le retourner casse souvent l’ordre d’affichage de la page, car WordPress insère le résultat retourné à un endroit précis du contenu.