Que sont les filtres?
Les filtres sont des fonctions par lesquelles WordPress transmet les données, à certains moments de l'exécution, juste avant de prendre des mesures avec les données (comme les ajouter à la base de données ou les envoyer à l'écran du navigateur). Les filtres se situent entre la base de données et le navigateur (lorsque WordPress génère des pages), et entre le navigateur et la base de données (lorsque WordPress ajoute de nouveaux messages et commentaires à la base de données); la plupart des entrées et sorties dans WordPress passent par au moins un filtre. WordPress effectue un filtrage par défaut, et votre plugin peut ajouter son propre filtrage.
Accrocher dans un filtre
Afin de permettre aux utilisateurs de modifier certaines données spécifiques (une valeur, la sortie d'une fonction, etc.), les crochets de filtre sont fournis via des apply_filters
fonctions.
Ces crochets de filtre incluent le nom (ou la balise ) du filtre et au moins le nom de la fonction qui doit être utilisé pour filtrer (c'est-à-dire modifier d'une certaine manière) les données.
Pour modifier le titre d'une publication, vous pouvez utiliser le the_title
crochet de filtre, qui est défini comme suit:
apply_filters( 'the_title', $title, $id );
Cela signifie que le filtre a la balise / le nom the_title
, le premier paramètre $title
est les données qui doivent être modifiées (c'est-à-dire le titre du message) et le deuxième paramètre $id
est une information supplémentaire (dans ce cas, l'ID du message).
Pour afficher le titre de chaque publication en MAJUSCULE, par exemple, vous pouvez utiliser la ligne suivante:
add_filter('the_title', 'strtoupper');
Si nous examinons la add_filter
fonction, nous voyons qu'elle est définie comme suit:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Nous n'avons spécifié que le premier et le deuxième paramètre (requis), tandis que les troisième et quatrième paramètres sont définis sur leur valeur par défaut respective (c'est-à-dire, 10
et 1
).
Un filtre plus complexe
Si vous souhaitez filtrer uniquement une certaine publication , vous pouvez utiliser les informations supplémentaires (dans le cas de ce filtre: l'ID). Pour ce faire, vous devez spécifier le nombre de paramètres (qui est 2 dans ce cas), et pour recommencer, vous devez spécifier le paramètre de priorité (qui précède le nombre d'arguments).
Supposons que nous voulons affecter uniquement le titre du message avec l'ID 42, alors cela ressemble à ceci:
add_filter('the_title', 'my_strtoupper', 10, 2);
function my_strtoupper($title, $id) {
if (42 === $id) return strtoupper($title);
return $title;
} // function my_strtoupper
Dans ce cas, nous devons spécifier les quatre paramètres disponibles.
Quels paramètres ai-je?
Pour identifier le (nombre de) paramètres disponibles d'un certain filtre, vous devez rechercher où il est défini (dans ce cas: ici ).
Références :