La plupart des éléments suivants se trouvent dans le Codex :
apply_filters
Les fonctions de rappel attachées au hook de filtre $tag
sont appelées en appelant cette fonction. Cette fonction peut être utilisée pour créer un nouveau hook de filtre en appelant simplement cette fonction avec le nom du nouveau hook spécifié à l'aide du paramètre $ tag.
$value = apply_filters( $tag, $value, $var_1, $var_2, ... );
Essentiellement:
vous utilisez apply_filters
pour filtrer une donnée $value
- en ce qui concerne la valeur elle-même ainsi que les variables éventuellement fournies $var_1
via $var_n
.
add_filter
Accrochez une fonction à une action de filtrage spécifique.
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Essentiellement:
vous utilisez add_filter
pour accrocher une fonction personnalisée à l'action de filtrage donnée ( $tag
), que vous avez peut-être générée apply_filters
avant (ou c'était une action de filtrage intégrée ou découle d'un plugin / de votre thème).
Voici donc un exemple
fictif :
function print_initials( $name ) {
if ( ! is_string( $name ) ) {
return;
}
$fragments = explode( ' ', $name );
/**
* Filter wether to print initials in reverse order.
*
* @param bool $reverse Print initials in reverse order?
*/
if ( apply_filters( 'reverse_initials', FALSE ) ) {
$fragments = array_reverse( $fragments );
}
foreach ( $fragments as $f ) {
echo substr( $f, 0, 1 );
}
}
print_initials( 'Some Guy' ); // outputs: SG
add_filter( 'reverse_initials', '__return_true' );
print_initials( 'Some Guy' ); // outputs: GS
Maintenant, si nous appelons simplement notre fonction telle quelle, les initiales sont imprimées de gauche à droite, car c'est ce que nous avons défini comme comportement par défaut.
La deuxième fois, nous obtenons les initiales dans l'ordre inverse, car la fonction de filtrage __return_true
, qui est liée à notre action de filtrage, revient toujours TRUE
et fait donc sortir les initiales de droite à gauche.