Formation PUB020 : WordPress, 2023 Les shortcodes WordPress

29.7 Créer et utiliser des hooks et des shortcodes


Les hooks et les shortcodes font appel à des notions à la fois semblables et très différentes.

Ils peuvent tous les deux être fournis par le noyau WordPress, par un thème ou par une extension. Il est également possible d'en créer de nouveaux.

Dans cette fiche, je vais vous aider à démystifier les fonctions de création et d'utilisation des hooks et des shortcodes.

  Création Utilisation
Hook de type filtre

apply_filters()

Exécute les fonctions de rappel qui ont été associées au hook avec add_filter().

add_filter()

Associe une fonction de rappel à un hook de type filtre.

Hook de type action

do_action()

Exécute les fonctions de rappel qui ont été associées au hook avec add_action().

add_action()

Associe une fonction de rappel à un hook de type action.

Shortcode

add_shortcode()

Associe une fonction de rappel qui sera exécutée lorsque le shortcode sera dans une page ou un article ou lors de l'appel à do_shortcode().

[monprefixemonshortcode]

ou

do_shortcode()

Affiche la valeur de retour de la fonction de rappel associée au shortcode.

Hooks

Il existe de nombreux hooks fournis par le noyau WordPress. La liste est trop longue pour être reprise ici.

On peut toutefois en mentionner quelques-uns :

Création de nouveaux hooks

Lorsque vous développez un thème parent ou une extension, il est possible d'ajouter de nouveaux hooks personnalisés à l'aide de apply_filters() ou do_action().

Pourquoi ne pas créer de nouveaux hooks dans un thème enfant ? Simplement parce que le but des hooks est de permettre à ceux qui utilisent notre code de le personnaliser. Le thème enfant est déjà une personnalisation alors la définition d'un hook serait inutile.

Dans le thème parent (WordPress)

/**

 * Fonction de rappel du hook after_setup_theme, exécutée après que le thème ait été initialisé.
 * @author Christiane Lagacé <christiane.lagace@hotmail.com>

 *

 * Utilisation : add_action( 'after_setup_theme', 'monprefixe_apres_initialisation_theme' );

 */

function monprefixe_apres_initialisation_theme() {

    // par défaut, il y a 2 colonnes mais les thèmes enfant peuvent en définir un nombre différent

    $colonnes = apply_filters( 'ajuster_nombre_colonnes', 2 );

}

 

add_action( 'after_setup_theme', 'monprefixe_apres_initialisation_theme' );

Exécution d'un hook

Pour exécuter un hook, que ce soit un hook fourni par le noyau WordPress ou un que vous avez ajouté dans un thème ou dans une extension, il faut utiliser add_filter() pour les hooks créés par apply_filter() ou add_action() pour ceux créés par do_action().Dans le thème enfant (WordPress)

/**

 * Fonction de rappel du hook ajuster_nombre_colonnes défini dans le thème parent.
 * @author Christiane Lagacé <christiane.lagace@hotmail.com>

 *

 * Utilisation : add_filter( 'ajuster_nombre_colonones', 'monprefixe_ajuster_nombre_colonnes' );

 

 */

function monprefixe_ajuster_nombre_colonnes() {

    return 4;

}

 

add_filter( 'ajuster_nombre_colonnes', 'monprefixe_ajuster_nombre_colonnes' );

Dans cet exemple, le thème enfant aura 4 colonnes. C'est le thème parent qui générera le code HTML correspondant au nombre de colonnes, selon la valeur retournée par le hook.

Dans le cas où le thème enfant n'exécuterait pas ce hook, le nombre de colonne serait tel que défini par le thème parent, soit 2.

Shortcode

Tout comme pour les hooks, le noyau WordPress, les thèmes et les extensions définissent de nombreux shortcodes.

Parmi les shortcodes définis par le noyau WordPress, notons :

Création de nouveaux shortcodes

Les thèmes et les extensions peuvent créer de nouveaux shortcodes à l'aide de add_shortcode().

WordPress (PHP)

/**

 * Définit un shortcode qui affiche la liste des kayaks tirée de la base de données.
 * @author Christiane Lagacé <christiane.lagace@hotmail.com>

 *

 * Utilisation : [monprefixelistekayaks]

 * Suppositions critiques : le style .textespecial doit définir l'apparence du texte

 *

 * @return String Code HTML généré par le shortcode

 *

 */

function monprefixe_liste_kayaks() {

    $code_html = ...;

    // ...

    return $code_html;

}

 

add_shortcode( 'monprefixelistekayaks', 'monprefixe_liste_kayaks' );

Exécution d'un shortcode

Pour exécuter un shortcode dans une page ou dans un article, il suffit d'inscrire le nom du shortcode (premier paramètre de add_shortcode) entre crochets carrés dans le texte d'une page ou d'un article.

Il est également possible d'exécuter le shortcode par programmation à l'aide de do_shortcode() dans un fichier modèle.

WordPress (PHP)

do_shortcode('monprefixelistekayaks);]

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre