WordPress хуки что это

Хуки в WordPress: взгляд изнутри

Ключевая особенность гибкого фундамента WordPress состоит в умелом использовании хуков. Применяемые в темах, плагинах и ядре, хуки позволяют добиться беспрецедентного расширения при сохранении совместимости с последующими версиями WordPress. Отсюда вытекает, что понимание хуков должно составлять обязательную часть «репертуара» разработчиков. Присоединяйтесь к нам – сегодня мы рассмотрим скрытые стороны этой простой, но в то же время мощной системы. О чем пойдет речь: мы пробежимся по концепции хуков, их применению и, естественно, покажем примеры их использования.

Концепция: что такое хуки и почему они используются?

Wordpress хуки что это. 113. Wordpress хуки что это фото. Wordpress хуки что это-113. картинка Wordpress хуки что это. картинка 113

За любым качественно написанным программным обеспечением кроется мощная концепция, которая отвечает на вопросы «что такое?» и «почему?». Хуки – не исключение. Говоря простыми словами, хук – это заполнитель для действия. Когда происходит определенное событие, такое как публикация записи, хук активируется, позволяя реализовать соответствующую реакцию. В терминах разработчиков хуки представляют собой пример системы, управляемой событиями.

Концепция хуков требует более подробного объяснения, нежели простое определение термина – нам нужно понять, чем они полезны. Хуки играют в WordPress ключевую роль вследствие постоянного развития данной системы. Сотни разработчиков постоянно обновляют систему, а значит нет никакой возможности отредактировать базовые файлы каждого плагина, темы или отдельной настройки, так как они будут часто меняться. Вместо этого для расширения системы требуется фреймворк, позволяющий подключать внешнюю функциональность, чтобы добиться такого же мощного эффекта, как и в случае с внутренними манипуляциями. Хуки – ключевая особенность данного фреймворка.

Как применить хуки?

Как разработчик, вы должны понимать не только то, что делают хуки или почему они введены, но и знать, как их создавать. Иными словами, чтобы полностью понять систему хуков, нужно разобраться в том, как они применяются.

По аналогии с письменным тестом, взгляд в ответы – не всегда самая лучшая идея. Как утверждают многие стратегии прохождения тестов, сначала надо прочесть вопрос, сформулировать свои собственные мысли по поводу ответа, и затем уже принять решение, которое ближе всего отвечает вашему обоснованию. Подобный метод может быть применен в процессе изучения разработки программного обеспечения; вместо того чтобы заглядывать в чей-либо код, чтобы понять, как реализуется та или иная особенность, зачастую полезнее сначала написать его самостоятельно, и затем уже вернуться назад и изучить его работу. Именно так мы и поступим.

Работа с документацией

Чтобы понять то, как система реализована на практике, зачастую полезно посмотреть в документацию. Давайте изучим статьи о двух базовых функциях подцепления, представленных в кодексе:

Теперь, когда у нас в одной руке находится документация, мы можем сделать некоторые выводы по поводу этих двух функций. add_action просто связывает функцию, приоритет и количество аргументов со строкой. Это напоминает идеальную задачу для PHP массивов, которые также работают как хэш-карты, хранящие пары ключ-значение. do_action более тривиальная функция – она обращается к этому массиву, разыскивает функциональные обработчики и вызывает их впоследствии. Держа в памяти нашу схему, самое время перейти к применению хуков.

Применяем полученные знания на практике

Wordpress хуки что это. 210. Wordpress хуки что это фото. Wordpress хуки что это-210. картинка Wordpress хуки что это. картинка 210

Поскольку мы делаем это для получения знаний о системе хуков WordPress, нам не нужно применять эти две функции в полном соответствии с документацией. Вместо этого давайте сфокусируемся на их применении без лишних параметров, чтобы сэкономить свое время и быстро понять суть.

Перед тем как начать, давайте создадим план действий:

Код будет выглядеть следующим образом:

Отлично; мы создали универсальную систему хуков с помощью примерно 20 строк кода. Теперь, когда у нас есть идея того, как работают хуки, давайте погрузимся в код ядра WordPress, чтобы подтвердить наши гипотезы.

Быстро перемещаться по коду можно с помощью разных инструментов – таких как, к примеру, Yoast’s PHP Cross Reference of the WordPress Source.

Поиск по «add_action» выдает следующий код:

Цикличное прохождение по связанным функциям и вызов каждой из них не является для нас чем-то странным; фактически это именно то, о чем мы говорили в нашей реализации. Следовательно, то, что мы начали с мыслей о коде, не только помогло нам лучше понять его, но и пробудило критическое мышление для решения проблемы, что очень важно в разработке программного обеспечения.

Примеры

Обладая пониманием работы хуков, давайте взглянем на два следующих примера. Первый пример – работа с RSS; вместо того чтобы рассылать уведомления через синдикацию, почему бы не использовать для этого электронную почту?

Система почтовых уведомлений

Wordpress хуки что это. 34. Wordpress хуки что это фото. Wordpress хуки что это-34. картинка Wordpress хуки что это. картинка 34

Чтобы реализовать данную систему, нам нужно получить дату публикации записи. Однако какой хук мы должны использовать для этого? Описание API действий предлагает список хуков наряду со связанными с ними событиями, что поможет нам получить ответ на поставленный выше вопрос. Описание хука publish_post подходит под наши требования, потому давайте добавим обработчик функций к нему:

Все, что нам осталось сделать, – это отправить уведомление по электронной почте в обработчике функции notify_via_email. Обратите внимание, что хук publish_post передает ID записи как аргумент в нашу функцию. Это позволит нам получить информацию о записи с помощью функции get_post:

После получения записи мы применим ее заголовок, дату и постоянную ссылку в нашем почтовом сообщении. Оно затем будет отправлено с помощью функции wp_mail, которая требует адрес получателя, тему письма и сообщение в качестве своих параметров. Со всем этим наша система отправки почтовых уведомлений готова. Обратите внимание, что не рекомендуется вызывать сразу несколько функций wp_mail за один раз, поскольку это ведет к заметной задержке загрузки страниц после того, как нажата кнопка публикации записи.

Плагин Google Analytics

Wordpress хуки что это. 43. Wordpress хуки что это фото. Wordpress хуки что это-43. картинка Wordpress хуки что это. картинка 43

Наше первое приложение, пусть несколько надуманное, выступило кратким введением в использование хуков. Теперь мы приведем второй пример, который будет уже более близок к реальному использованию на практике. Мы создадим простой плагин Google Analytics, который автоматически вставит код отслеживания в футер страницы.

Сначала может показаться, что тема является более подходящей средой для такого кода. Но это лишь мнимое представление, ибо тема сайта восприимчива к версиям и изменениям. Код аналитики может легко потеряться при переходе от одной темы к другой. Создание плагина позволяет избежать этой проблемы, поскольку он будет оставаться активным вне зависимости от используемой темы. Вам не придется вносить какие-либо изменения в тему всякий раз после ее замены.

Но как добавить код в футер сайта? Все так же – с помощью хуков. Если вы работали с WordPress темами раньше, вы, вероятно, вызывали функции wp_head и wp_footer в хэдере и футере вашего сайта соответственно. Обе эти функции просто активируют хуки, чтобы плагины могли легко добавлять свой код в эти жизненно важные области страницы. Следовательно, мы просто добавим действие к хуку wp_footer:

Наша функция add_google_analytics_code, как и предполагает ее название, печатает код Google Analytics:

Обязательно измените UA-XXXXX-X на ваш личный ID, зависящий от сайта. В итоге все заработает. Просто добавьте указанный код в файл и загрузите его в вашу папку с плагинами. Убедитесь в том, что плагин содержит заголовок – к примеру, такой:

Поменяйте имя автора, URI, ну и не забудьте активировать плагин!

Источник

Что такое WordPress хуки и как их использовать?

Каждый WordPress разработчик должен знать что хуки являются основным механизмом связи между ядром WordPress, плагинами и темами.

Если вы еще не согласны с этим утверждение, тогда вам просто критически важно начать именно с этой темы и очень хорошо в ней разобраться, чтобы понять как работает WordPress и его экосистема.

Я учавствовал в несколько десятках технических интервью и был сильно удивлен, что некоторые разработчики WordPress понимают эту, на мой взгляд важнейшую, тему поверхностно, интуитивно или вообще не знают, как работают хуки. Лично я считаю, что данная тема является обязательной и самой важной для разработчиков WordPress, поэтому я решил описать ее еще раз. В любом случае, давайте начнем.

Хуки — это Действия (Actions) и Фильтры (Filters)

Действия (Actions) разрешают вам добавить данные или изменить поведение WordPress. Действия будут запускаться в определенный момент внутри WordPress ядра, плагинов или тем. Колбэки (Callback functions) для действий могут выполнять разные задачи, такие как пользовательский вывод или добавление чего-нибудь в базу данных. Колбэки для действий ничего не возращают назад при добавлении на хук.

Документация для WordPress разработчиков

Фильтры (Filters) дают возможность изменить данные в процессе выполнение WordPress ядра, плагинов или тем. Колбэки (Callback functions) для фильтров могут принимать переменные, изменять и возращать их. Все они работают в отдельности друг от друга и не должны создавать никаких побочных действий, такие как изменение глобальных переменных или вывод. Фильтры обязательно должны вернуть что-нибудь назад.

Документация для WordPress разработчиков

В двух словах, действия запускают какой-нибудь код, а фильтры — изменяют переменные. Давайте рассмотрим пару примеров:

Как технически работают хуки?

Пользователь отправляет какой-то HTTP запрос и интерпретатор PHP запускает нужные WordPress файлы, начиная с ядра, одним из файлов ядра является хранилище для хуков — WP_Hook класс. Затем PHP интерпретатор выполняет код строка за строкой и когда находит функции для добавления колбэков на хуки записывает их в хранилище. Очень важно, что колбэки не запускаются, а записываются в хранилище. Затем, интерпретатор находит функцию для запуска хука, смотрит в хранилище и запускает добавленные колбэк фукнции одна за одной по очереди.

Такой крутой механизм дает нам сумашедшую расширяемость для разработки. Вы разработчик плагина или темы? Вы можете легко изменить поведение ядра, любой другого плагина, или темы без особых проблем (если вы знаете как использовать хуки :)).

Вот, упрощенный пример:

Таким образом 1-й и 2-й плагины и тема могу взаимодействовать и влиять на код, который находится на какой-то странице или скрыт где-то на бэкенде. Правда круто?

Список фукнций, относящихся к хукам

Фукнции запускающие колбэки, которые были добавлены на хук (найболее используемые):

Фукнции запускающие колбэки, которые были добавлены на хук с несколькими аргументами, которые переданные по ссылкеp:

Устаревший фукнции для запуска колбэков. Все еще работают, но выдают warning:

Добавить колбэк на хук (найболее используемые):

Удалить колбэк с хука:

Удалить все колбэки с хука:

Получить кол-во раз, которые этот хук был вызван за текущий запрос:

Проверить, добавлен ли колбэк на текущий хук:

Получить имя текущего хука:

Обрабатывается ли в данный момент хук:

Что же такое колбэк?

Я думаю в ходе статьи вы уже устали от слова колбэк. Давайте разберемся, что это такое и почему это так важно для хуков? Итак, Callbale — это псевдотип в PHP. Так как нам нужно запускать наш код не сразу, а в какой-то определенный момент, мы должны дать всю нужную информцию о том, что конкретно нам нужно выполнить. Строку add_action( ‘save_post’, ‘notify_administrator’ ); мы должны читать как «на действие сохранения поста вызвать функцию оповещения администратора». Еще раз повторю, потому что это очень важно, мы ничего не вызываем, мы отвечаем на вопросы «Когда?» и «Что нужно запустить?».

В двух словах тип callable — это то, что мы можем запустить. И что же мы можем запустить в PHP? Мы можем запустить функции или публичные методы объекта или класса, но как из этого сделать callback? Просто передать названия метода или функции. Очень сильно рекомендую вам выучить и разобраться в синтаксисе, потому что разработчики WordPress работает с колбэками каждый день:

Посмотрели код? Теперь вернитесь и посмотрите еще раз. Советую выучить синтаксис и уметь понимать его автоматически при чтении кода, потому что колбэки — это основной механизм хуков и еще многих других вещей в WordPress.

Настройка PhpStorm для хуков

Настройка PHP интерпретатора и добавление путей проекта

Настройка WordPress как фреймворка

Результат настройки PhpStorm

В результате вы получите две очень великолепные функции: автодополнение хуков, которое поможет вам найти хук, если вы приблизительно знаете его имя.

Wordpress хуки что это. autocomplete hooks. Wordpress хуки что это фото. Wordpress хуки что это-autocomplete hooks. картинка Wordpress хуки что это. картинка autocomplete hooksАвтодополнение WordPress хуков в PhpStorm.

И быстрый поиск вызова хуков. Вы можете кликнуть на значок h↑ и найти все места, где данный хук используется. В резульате, вы можете легко перейти в место, где данный хук используется и найти больше инфорации о его использовании или найти близьлежащие хуки, а так же документацию для хуков.

Wordpress хуки что это. hooks find. Wordpress хуки что это фото. Wordpress хуки что это-hooks find. картинка Wordpress хуки что это. картинка hooks findБыстрый поиск WordPress хуков в PhpStorm

Как раставить хуки?

Если вы пишите тему или плагин для массового использования, то вы обязательно должны оставить как можно больше хуков. Как это сделать правильно? На самом деле тема довольно сложна, потому что каждый случай уникальный, но я все же попробую:

Давайте рассмотрим на примере просто запроса в API:

И еще один пример, шорткод, который печатает какую-то таблицу:

Соглашение об именовании хуков

Для примера вы можете использовать Полное название класса (FQCN) + название метода + дополнительная инфорация(опционально). Давайте обновим наш код для запроса в API с помощью этого соглашения:

В таком случае мы всегда знаем, как назвать хук и уверены в том, что не будет никаких проблем с другой частью вашего приложения. Иногда конечно названия хуков будут иметь не совсем корректный порядок слов или не очевидные именна, но в таком случае мы должны упростить наш код, разбить на более мелкие методы. Самое важное, что в таком случае мы имеет четкое соглашение для именования хуков и можем это задокументировать и автоматизировать.

Причиной такого соглашения является упрощение работы для инстументов анализа кода, поиска в PhpStorm, инструментах генерации документации и т.д.

Источник

Что такое WordPress хуки и как их использовать?

Каждый WordPress разработчик должен знать что хуки являются основным механизмом связи между ядром WordPress, плагинами и темами.

Если вы еще не согласны с этим утверждение, тогда вам просто критически важно начать именно с этой темы и очень хорошо в ней разобраться, чтобы понять как работает WordPress и его экосистема.

Я учавствовал в несколько десятках технических интервью и был сильно удивлен, что некоторые разработчики WordPress понимают эту, на мой взгляд важнейшую, тему поверхностно, интуитивно или вообще не знают, как работают хуки. Лично я считаю, что данная тема является обязательной и самой важной для разработчиков WordPress, поэтому я решил описать ее еще раз. В любом случае, давайте начнем.

Хуки — это Действия (Actions) и Фильтры (Filters)

Действия (Actions) разрешают вам добавить данные или изменить поведение WordPress. Действия будут запускаться в определенный момент внутри WordPress ядра, плагинов или тем. Колбэки (Callback functions) для действий могут выполнять разные задачи, такие как пользовательский вывод или добавление чего-нибудь в базу данных. Колбэки для действий ничего не возращают назад при добавлении на хук.

Документация для WordPress разработчиков

Фильтры (Filters) дают возможность изменить данные в процессе выполнение WordPress ядра, плагинов или тем. Колбэки (Callback functions) для фильтров могут принимать переменные, изменять и возращать их. Все они работают в отдельности друг от друга и не должны создавать никаких побочных действий, такие как изменение глобальных переменных или вывод. Фильтры обязательно должны вернуть что-нибудь назад.

Документация для WordPress разработчиков

В двух словах, действия запускают какой-нибудь код, а фильтры — изменяют переменные. Давайте рассмотрим пару примеров:

Как технически работают хуки?

Пользователь отправляет какой-то HTTP запрос и интерпретатор PHP запускает нужные WordPress файлы, начиная с ядра, одним из файлов ядра является хранилище для хуков — WP_Hook класс. Затем PHP интерпретатор выполняет код строка за строкой и когда находит функции для добавления колбэков на хуки записывает их в хранилище. Очень важно, что колбэки не запускаются, а записываются в хранилище. Затем, интерпретатор находит функцию для запуска хука, смотрит в хранилище и запускает добавленные колбэк фукнции одна за одной по очереди.

Такой крутой механизм дает нам сумашедшую расширяемость для разработки. Вы разработчик плагина или темы? Вы можете легко изменить поведение ядра, любой другого плагина, или темы без особых проблем (если вы знаете как использовать хуки :)).

Вот, упрощенный пример:

Таким образом 1-й и 2-й плагины и тема могу взаимодействовать и влиять на код, который находится на какой-то странице или скрыт где-то на бэкенде. Правда круто?

Список фукнций, относящихся к хукам

Фукнции запускающие колбэки, которые были добавлены на хук (найболее используемые):

Фукнции запускающие колбэки, которые были добавлены на хук с несколькими аргументами, которые переданные по ссылкеp:

Устаревший фукнции для запуска колбэков. Все еще работают, но выдают warning:

Добавить колбэк на хук (найболее используемые):

Удалить колбэк с хука:

Удалить все колбэки с хука:

Получить кол-во раз, которые этот хук был вызван за текущий запрос:

Проверить, добавлен ли колбэк на текущий хук:

Получить имя текущего хука:

Обрабатывается ли в данный момент хук:

Что же такое колбэк?

Я думаю в ходе статьи вы уже устали от слова колбэк. Давайте разберемся, что это такое и почему это так важно для хуков? Итак, Callbale — это псевдотип в PHP. Так как нам нужно запускать наш код не сразу, а в какой-то определенный момент, мы должны дать всю нужную информцию о том, что конкретно нам нужно выполнить. Строку add_action( ‘save_post’, ‘notify_administrator’ ); мы должны читать как «на действие сохранения поста вызвать функцию оповещения администратора». Еще раз повторю, потому что это очень важно, мы ничего не вызываем, мы отвечаем на вопросы «Когда?» и «Что нужно запустить?».

В двух словах тип callable — это то, что мы можем запустить. И что же мы можем запустить в PHP? Мы можем запустить функции или публичные методы объекта или класса, но как из этого сделать callback? Просто передать названия метода или функции. Очень сильно рекомендую вам выучить и разобраться в синтаксисе, потому что разработчики WordPress работает с колбэками каждый день:

Посмотрели код? Теперь вернитесь и посмотрите еще раз. Советую выучить синтаксис и уметь понимать его автоматически при чтении кода, потому что колбэки — это основной механизм хуков и еще многих других вещей в WordPress.

Настройка PhpStorm для хуков

Настройка PHP интерпретатора и добавление путей проекта

Настройка WordPress как фреймворка

Результат настройки PhpStorm

В результате вы получите две очень великолепные функции: автодополнение хуков, которое поможет вам найти хук, если вы приблизительно знаете его имя.

Wordpress хуки что это. autocomplete hooks. Wordpress хуки что это фото. Wordpress хуки что это-autocomplete hooks. картинка Wordpress хуки что это. картинка autocomplete hooksАвтодополнение WordPress хуков в PhpStorm.

И быстрый поиск вызова хуков. Вы можете кликнуть на значок h↑ и найти все места, где данный хук используется. В резульате, вы можете легко перейти в место, где данный хук используется и найти больше инфорации о его использовании или найти близьлежащие хуки, а так же документацию для хуков.

Wordpress хуки что это. hooks find. Wordpress хуки что это фото. Wordpress хуки что это-hooks find. картинка Wordpress хуки что это. картинка hooks findБыстрый поиск WordPress хуков в PhpStorm

Как раставить хуки?

Если вы пишите тему или плагин для массового использования, то вы обязательно должны оставить как можно больше хуков. Как это сделать правильно? На самом деле тема довольно сложна, потому что каждый случай уникальный, но я все же попробую:

Давайте рассмотрим на примере просто запроса в API:

И еще один пример, шорткод, который печатает какую-то таблицу:

Соглашение об именовании хуков

В WordPress документации нет особых рекомендации насчет именовании хуков, но в сложных продуктах для WordPress без этого никуда. Я предпочитаю, чтобы все соглашения были описаны в линтере как часть стандартов кодирования. На самом деле не важно, какое именно соглашение будет у вашей команды, но оно должно быть.

Для примера вы можете использовать Полное название класса (FQCN) + название метода + дополнительная инфорация(опционально). Давайте обновим наш код для запроса в API с помощью этого соглашения:

В таком случае мы всегда знаем, как назвать хук и уверены в том, что не будет никаких проблем с другой частью вашего приложения. Иногда конечно названия хуков будут иметь не совсем корректный порядок слов или не очевидные именна, но в таком случае мы должны упростить наш код, разбить на более мелкие методы. Самое важное, что в таком случае мы имеет четкое соглашение для именования хуков и можем это задокументировать и автоматизировать.

Причиной такого соглашения является упрощение работы для инстументов анализа кода, поиска в PhpStorm, инструментах генерации документации и т.д.

Источник

Что такое хук в WordPress? Полезные советы по работе с хуками в WordPress

Если вы плохо знакомы с хуками, эта статья поможет вам. Приведенные в статье примеры взяты из ядра WordPress, а также из собственного многолетнего опыта работы разработчиком плагинов.

Wordpress хуки что это. 42594 056839. Wordpress хуки что это фото. Wordpress хуки что это-42594 056839. картинка Wordpress хуки что это. картинка 42594 056839

Хуки WordPress — это функция, которая позволяет расширять возможности плагины и темы без риска их сломать.

Что такое хук?

Хук «do» называется «действием». В любом месте, где определено действие, можно выполнить собственный код. Вот некоторые примеры:

Хук «customize» называется «фильтром». Фильтр позволяет изменять или настраивать значение и возвращать его в новой форме. Вот некоторые примеры:

Для фильтра важна не только позиция, но и возвращаемые значения. WordPress имеет фильтр почти для каждого значения, которое обрабатывает.

Элементы процедуры хука

Хук (существительное)

Сам хук — это указание того, когда и где происходит магия. Представьте себе, что это крюк, который альпинист вбил в поверхность скалы. Крюк имеет определенную позицию. Если другие альпинисты захотят двигаться в этом направлении, они могут использовать его.
Хуки действий вызываются с помощью функции do_action:

Хуки вызываются с помощью apply_filters() :

Как видите, нам нужно перехватить данные из фильтра.

Действия и фильтры

и использование тега
для разрывов строк.

В отличие от действия, функции фильтра требуется хотя бы один аргумент. Он должен быть возвращен.

Хук (глагол)

В процедуре хука WordPress нужно указать, для чего именно предназначен хук. Это означает, что мы должны привязать функцию (глагол) к крюку (существительному). Это делается с помощью функции, которая часто неправильно называется «хуком».
Для хука wp_head и действия noindex() связь устанавливается с помощью этой строки кода:

Третий параметр является приоритетом. Мы рассмотрим его ниже.
Включение wpautop() в the_contentо осуществляется с помощью этой строки:

Это основные принципы процедуры хука. В следующих разделах мы рассмотрим их более подробно.

Вы уже используете эти хуки

WP_HEAD

The content

По умолчанию к функции the_content уже подключено несколько фильтров.

Эти фильтры отвечают за формат и ряд специальных символов в тексте. Они также широко используется плагинами для присоединения таких элементов, как иконки социальных сетей или связанных записей.

Уроки использования the_content

Параметры в процедуре хука

Основные параметры, которые нужны — это имя хука, имя функции, приоритет и аргументы, которые ей передаются.
Вот как выглядит вызов add_filter :

Имена хуков ($teg)

Префиксы имен хуков

Помимо позиции и значения нужно задать префикс хука префикса. Например:

Это предотвращает конфликты с хуками в других плагинах или темах оформления.

Динамические имена хуков

Данная функция включает в себя следующие хуки:

Магический «all»

При вызове add_action() и add_filter() в качестве имени хука можно использовать специальный тег. Благодаря чему связанная функция будет использоваться для каждого хука.

Имена функций

Также возможно подключение статичной функции в классе:

Ее вызов в экземпляре этого класса будет выглядеть следующим образом:

Также можно вызвать метод в экземпляре того же класса, например:

Использование PHP функций по умолчанию

В определенных случаях не нужно создавать собственную функцию. Эта процедура хука преобразует в заглавную каждую первую букву заголовка записи:

Поскольку ucwords() является стандартной функцией PHP, которая принимает и возвращает значение, ее можно сократить до одной строки:

Приоритеты

Третий параметр в add_action() и add_filter() — это приоритет. Он устанавливает порядок, в котором вызываются функции, связанные с хуком.
Этот параметр является необязательным и по умолчанию равен 10, если не определен явно. Несколько функций с одинаковым приоритетом будут вызываться в том порядке, в котором они были зарегистрированы в хуке.
Плагин Advanced Ads использует the_content при вставке рекламных объявлений до или после контента. Ее третий параметр определяет, вставляется ли сначала рекламное объявление или другой контент. Чтобы избежать обращений за поддержкой относительно «неправильного» порядка элементов, я предоставил пользователям возможность выбирать приоритет фильтра в качестве опции.

Проверка выполнения действия

Проверка использования фильтра

С помощью этого фрагмента кода я проверяю, является ли приоритет wpautop() выше, чем приоритет функции включения рекламных объявлений. Получается, что параграфы еще не установлены, и это указывает плагину сначала создавать их.

Аргументы

При использовании функции add_action() или add_filter() четвертый параметр — это количество аргументов, которое ожидает функция действия или фильтра.
В нашем случае функция- хук может использовать эти четыре аргумента. Но это не обязательно. Что подтверждается взаимосвязью, реализованной в ядре:

Сложности с количеством аргументов

Указанное число аргументов должно соответствовать количеству, которое использует функция. Но это правило необязательное, если аргументов нет или он только один.
Если функции требуется больше аргументов, вам придется их установить, иначе вы получите сообщение об ошибке. Если вы их установили, также необходимо будет установить приоритет, который во многих случаях является необязательным.

Удаление действий и фильтров

Удаление из хука действия или фильтра не является чем-то необычным. Популярным примером было удаление emojis из WordPress 4.2.
Весь плагин Disable Emojis можно свести к приведенному ниже коду:

Функции remove_action() и remove_filter() принимают три аргумента:

Как найти хук?

Чтобы найти хук, нужно просто знать, что бы вы ни хотели изменить или добавить. Чтобы приступить к работе, можно просто изучить функции, которые уже используются в текущем коде.
Еще одним ресурсом, который можно использовать, является страница API плагинов. На ней перечислены важные функции и другая полезная информация.

Отладка хуков

Чтобы отлаживать хуки, создайте список всех подключенных действий и фильтров.

Использование error_log()

Использование HOOK API

Использование плагинов

Кроме этого существуют плагины для отладки, которыедают возможность увидеть список всех хуков и подключенных функций. Лично я использую Debug Objects.

Приступаем к работе

Надеюсь, что теперь выбудете лучше понимать решения, которые приводятся на разных форумах.

Дайте знать, что вы думаете по этой теме в комментариях. За комментарии, подписки, дизлайки, отклики, лайки низкий вам поклон!

Дайте знать, что вы думаете по данной теме в комментариях. Мы крайне благодарны вам за ваши комментарии, отклики, подписки, дизлайки, лайки!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *