Intereting Posts
Редактор WordPress выделяет теги привязки, когда они появляются на собственной строке Как изменить порядок сообщений в админ? Отключить родительский аккаунт в wp_list_pages – WordPress Разбиение страниц на одной странице страницы? как разделить вертикальное меню на два столбца, используя навигационное меню walker Показать последние комментарии на странице с разбивкой на страницы Виджет комментариев Facebook – идентификатор приложения Демонстрация Импорт изменений условий ids Добавить кнопку самозакрывающегося короткого кода в TinyMCE в WP 4.6 Как отфильтровать список сообщений (в списке записей панелей WP), используя настраиваемое поле (функция поиска)? HowTo: добавление класса в список виджетов боковой панели Как создать мини-каталог в WordPress? Уменьшить ширину меню вниз в WordPress Переименование компонентов моей учетной записи Woocommerce Показ фетальной ошибки после установки плагина

Вопрос о том, как работают фильтры / действия 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 . Для крючков действий нет никакого возвращаемого значения.