Filter
Définition : Un filtre WordPress est un point d’extension qui transmet une valeur à des fonctions capables de la transformer. Chaque fonction doit retourner la valeur, modifiée ou non, pour maintenir le traitement normal du système.
Terminologie
Terme : Filter
Autres appellations : Filter hook, Crochet de filtre
À quoi cela sert
Un filtre sert à adapter une donnée sans réécrire la fonctionnalité qui la produit : titre, texte, paramètre ou tableau de classes CSS. Il est prévu pour transformer des valeurs, pas pour exécuter des opérations annexes à chaque passage.
Comment cela fonctionne
Lors de apply_filters(), les callbacks enregistrés s’exécutent par priorité et reçoivent successivement la valeur issue du précédent. Un callback qui oublie return peut provoquer un résultat null et détériorer le traitement. Les paramètres supplémentaires servent à contextualiser la transformation.
Dans quel contexte l’utiliser
Utiliser un filtre si l’on souhaite modifier une donnée immédiatement avant sa consommation : par exemple ajouter une classe au tableau body_class. Contrôler le type de la valeur d’entrée, sa validité et le contexte d’appel.
Exemple concret
Un thème ajoute une classe CSS distincte au corps des pages produits sans modifier le code interne générant les classes.
Exemple de code commenté
<?php
add_filter( 'body_class', function ( $classes ) {
if ( is_singular( 'product' ) ) {
$classes[] = 'atoolpha-produit';
}
return $classes; // Indispensable pour un filtre.
} );
Explication de l’exemple
Le callback reçoit les classes existantes et renvoie le tableau enrichi. Le même tableau est transmis aux autres filtres et au mécanisme qui construit finalement l’attribut class de la balise body.
Précautions et limites
Ne pas produire directement du HTML avec echo dans un filtre destiné à retourner des données ; échapper la sortie au moment de l’affichage, selon son contexte.
Termes associés
- Hook
- Action
- add_filter()
- apply_filters()
