Większość następujących elementów można znaleźć w Kodeksie :
apply_filters
Funkcje zwrotne dołączone do haka filtru $tag
są wywoływane przez wywołanie tej funkcji. Tej funkcji można użyć do utworzenia nowego haka filtru, po prostu wywołując tę funkcję z nazwą nowego haka określoną za pomocą parametru $ tag.
$value = apply_filters( $tag, $value, $var_1, $var_2, ... );
W istocie:
użyć apply_filters
, aby filtrować dane $value
- w odniesieniu do samej wartości, jak również ewentualnie przewidzianych zmiennych $var_1
poprzez $var_n
.
add_filter
Podpisz funkcję do określonej akcji filtrowania.
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Zasadniczo:
używasz add_filter
funkcji niestandardowej do podanej akcji filtrującej ( $tag
), którą mogłeś wcześniej wygenerować apply_filters
(lub była to wbudowana akcja filtrująca lub wynika z wtyczki / twojego motywu).
Oto
fikcyjny przykład:
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
Teraz, jeśli po prostu wywołamy naszą funkcję taką, jaka jest, inicjały są drukowane od lewej do prawej - ponieważ to właśnie zdefiniowaliśmy jako zachowanie domyślne.
Za drugim razem otrzymujemy inicjały w odwrotnej kolejności - ponieważ funkcja filtru __return_true
, która jest dołączona do naszej akcji filtrowania, zawsze powraca, TRUE
a tym samym sprawia, że inicjały są wysyłane od prawej do lewej.