Intereting Posts
Создать отдельное приложение JS для отдельного сообщения? Устаревшая функция get_user_by_email ($ email) Как вставить значок в название сайта Как добавить класс к термину множественный URL-адрес для одного пользовательского типа сообщения Как получить список пользовательских таксономий на основе пользовательского типа сообщений Triple meta_key в пользовательском запросе SELECT get_post_meta не извлекает заголовок, permalink и posttype Как настроить «страницы» admin (edit.php) и «Edit Page» admin (post.php) для массового редактирования настраиваемого типа контента? Пользовательские сообщения, не разбивающиеся на страницы архива и возвращающие 404 Перемещение сообщений синхронизации из одной базы данных в другую Как передать значение jQuery ajax URL Невозможно получить конкретную ценность из метаданных вариант многоузлового изменения на всех сайтах Обновление от старой версии до последней версии

Вопрос о том, как работают фильтры / действия WordPress

У меня есть вопрос, что мне интересно.

В WordPress мы можем добавить фильтр или действие, подобное этому коду:

add_filter($filter_Name, $function_will_be_hook); add_action($action_Name, $function_will_be_hook); 

Мы можем передать некоторые параметры в function_will_be_hook () . Но как WordPress знает, что эти параметры связаны с его фильтрами / действиями.

Пример:

 function my_the_content_filter($content) { $content .= "I added some additon content"; return $content; } add_filter( 'the_content', 'my_the_content_filter' ); 

Как WordPress знает, что $content является содержимым Post / Page (даже когда мы меняем имя этого параметра на какое-то другое имя)?

Solutions Collecting From Web of "Вопрос о том, как работают фильтры / действия WordPress"

Для каждого фильтра или действия, которые вы используете с add_filter или add_action , есть соответствующая apply_filters или do_action называемая где-то в ядре WordPress. Эта функция устанавливает, какие параметры будут отправлены фильтру или действию.

Для примера фильтра, который вы the_content , фильтр-крючок используется в функции the_content найденной в wp-includes\post-template.php the_content wp-includes\post-template.php в WordPress 3.7.1 :

 function the_content( $more_link_text = null, $strip_teaser = false) { $content = get_the_content( $more_link_text, $strip_teaser ); $content = apply_filters( 'the_content', $content ); $content = str_replace( ']]>', ']]>', $content ); echo $content; } 

В apply_filters функции apply_filters первым параметром является имя крючка, в данном случае – 'the_content' . Следующий параметр, $content , – это значение, которое мы хотим фильтровать. Это будет первый параметр в вашей функции фильтра (который называется $content в вашей функции my_the_content_filter , но может иметь любое имя). Необязательно, в функции apply_filters можно указать больше параметров, и они будут переданы в дополнительные входные параметры функции фильтра.

Для фильтра-фильтра функция фильтра возвращает отфильтрованное значение, которое, в свою очередь, возвращается функцией apply_filters . Для крючков действий нет никакого возвращаемого значения.