add_shortcode()
Définition : add_shortcode() enregistre un marqueur de shortcode WordPress et la fonction chargée de le remplacer lors du rendu. Elle permet d’exposer une fonctionnalité aux rédacteurs sans leur donner accès au code PHP.
Terminologie
Terme officiel : add_shortcode()
Autres appellations : Enregistrer un shortcode
À quoi cela sert
Cette fonction relie une balise reconnaissable dans le contenu à un callback de rendu. C’est un point d’entrée pédagogique pour les extensions affichant des éléments réutilisables dans les pages.
Comment cela fonctionne
Le callback reçoit les attributs, le contenu éventuel et le nom de la balise ; les attributs sont interprétés au moment de l’exécution du shortcode. Une balise enregistrée une seconde fois remplace le comportement précédent.
Dans quel contexte l’utiliser
À utiliser lorsqu’un éditeur doit insérer un composant dans du contenu sans dépendre d’une modification du thème.
Exemple concret
Un plugin propose une mention de statut configurable via [atoolpha_statut texte="Ouvert"].
Exemple de code commenté
<?php
add_shortcode( 'atoolpha_statut', function ( $atts ) {
$atts = shortcode_atts(
array( 'texte' => 'Disponible' ),
$atts,
'atoolpha_statut'
);
$texte = sanitize_text_field( $atts['texte'] );
return '<strong class="atoolpha-statut">' .
esc_html( $texte ) . '</strong>';
} );
Explication pas à pas de l’exemple
Le shortcode porte un nom préfixé pour limiter les collisions. Le callback applique une valeur par défaut, nettoie le texte puis construit un HTML échappé. La chaîne est renvoyée pour insertion à la place du marqueur.
Résultat attendu
La page affiche « Ouvert » lorsque le shortcode fournit cet attribut et « Disponible » quand il n’en fournit aucun.
Précautions et limites
Toujours retourner le résultat plutôt que l’afficher directement. Préfixer les balises et éviter d’exécuter des opérations lourdes à chaque occurrence.
À ne pas confondre
add_shortcode() enregistre la balise ; do_shortcode() analyse une chaîne contenant des balises reconnues.
Termes associés
- Shortcode API
- shortcode_atts()
