Formation PUB020 : WordPress, 2023 Les hooks (points d'ancrage)

27.6 Exemple pratique : le hook the_title


Le hook the_title survient juste avant que WordPress affiche le titre d'une page ou d'un article.

Il permet de modifier le titre, par exemple de le placer entre des balises <span> et </span> afin de lui appliquer une classe CSS.

Pour l'utiliser, comme pour n'importe quel hook, vous devez définir une fonction de rappel puis l'associer au hook à l'aide de la fonction add_filter().

Comprendre la documentation d'un hook

Pour savoir comment utiliser le hook the_title, il faut comprendre comment la documentation est écrite.

Documentation hook the_title

Ceci signifie que dans le code du noyau WordPress ou de votre thème parent, vous pourriez retrouver du code du genre :

WordPress (PHP)

$title = apply_filters( 'the_title', $title, $post->ID );

C'est ce code qui vous donne une emprise pour modifier le titre avant qu'il soit affiché.

Pour utiliser le hook, vous ne vous servirez pas de apply_filters() mais bien de add_filter().

Les deux fonctions vont de pair : apply_filters() permet de définir le point d'entrée d'un hook et lorsque cette ligne est exécutée, elle se charge d'appeler toutes les fonctions de rappel qui ont été associées à ce hook à l'aide de add_filter().

Paramètres de la fonction de rappel

La documentation indique que la fonction de rappel que vous associez au hook peut recevoir jusqu'à deux paramètres.

Comme avec tous les hooks de type filtre, le premier paramètre est celui que la fonction de rappel pourra modifier. Il s'agit ici du titre qui est sur le point d'être affiché. La fonction devra retourner cette variable après l'avoir traitée.

Les hooks de type filtre peuvent fournir d'autres paramètres à la fonction de rappel mais ces paramètres ne pourront pas être modifiés. Le hook the_title permet de spécifier l'identifiant de la page afin de fournir plus de contexte au traitement.

Si la fonction de rappel a besoin de travailler avec plus d'un paramètre, il faudra le préciser à l'aide du 4e paramètre de add_filter(). Par défaut, le 3e paramètre (priorité) a la valeur 10 et le 4e paramètre (nombre d'arguments) est à 1.

WordPress (PHP)

add_filter( 'the_title', 'monprefixe_titre_pages', 10, 2 );

 Donc, pour utiliser le hook the_title, on pourra écrire du code comme ceci si on n'a pas besoin de travailler avec l'ID :

WordPress (PHP)

/**
 * Place le titre entre des balises <span>.
 * @author Christiane Lagacé <christiane.lagace@hotmail.com>
 *
 * Utilisation : add_action( 'the_title', 'monprefixe_titre_pages' );
 * Suppositions critiques : le style .titrepage doit définir l'apparence du titre
 */
function monprefixe_titre_pages( $titre ) {
    $titre = '<span class="letitre">' . $titre . '</span>';
    return $titre;
}

add_action( 'the_title', 'monprefixe_titre_pages' );

 ou encore comme ceci si le second paramètre (l'identifiant) est requis :

WordPress (PHP)

/**
 * Ajoute des astérisques alentour des titres dans les menus.
 * @author Christiane Lagacé <christiane.lagace@hotmail.com>
 *
 * Utilisation : add_action( 'the_title', 'monprefixe_titre_articles', 10, 2 );
 */
function monprefixe_titre_articles( $titre, $id ) {
    $type = get_post_type( $id );

    if ( $type == 'nav_menu_item' ) {
        $titre = '*' . $titre . '*';
    }

    return $titre;
}

add_action( 'the_title', 'monprefixe_titre_articles', 10, 2 );

▼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