Більшість із наступного можна знайти в Кодексі :
apply_filters
Функції зворотного дзвінка, приєднані до гака фільтра $tag
, викликаються за допомогою виклику цієї функції. Ця функція може бути використана для створення нового гака фільтру, просто викликавши цю функцію з іменем нового гака, вказаним за допомогою параметра $ tag.
$value = apply_filters( $tag, $value, $var_1, $var_2, ... );
По суті:
використовується apply_filters
для фільтрації даність $value
- по відношенню до самого значенням, а також при необхідності передбачених змінних $var_1
через $var_n
.
add_filter
Приєднайте функцію до конкретної дії фільтра.
add_filter( $tag, $function_to_add, $priority, $accepted_args );
По суті:
ви використовуєте add_filter
для підключення користувальницької функції до даної дії фільтра ( $tag
), яку ви, можливо, генерували apply_filters
раніше (або це була вбудована дія фільтра або пов'язана із плагіном / вашою темою).
Отже, ось
вигаданий приклад:
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
Тепер, якщо ми просто називаємо нашу функцію такою, якою є, ініціали друкуються зліва направо - тому що це ми визначили як поведінку за замовчуванням.
Вдруге ми отримуємо ініціали в зворотному порядку - тому що функція фільтра __return_true
, прив'язана до нашої дії фільтра, завжди повертається TRUE
і, таким чином, робить ініціали виведення справа наліво.