Задача. Необходимо узнать какие функции подключены к тому или иному хуку в WordPress.
Решение. Чтобы узнать какие функции подключены к хуку необходимо создать и выполнить функцию из Код №1, которая из глобальной переменно $wp_filter
выдаст названия функций подключенных к конкретному хуку. Данный скрипт можно подключить, например файле footer.php
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// Создание функции для просмотра подключенных к хуку функций function print_function_for_hook( $hook = '' ) { global $wp_filter; if( empty( $hook ) || !isset( $wp_filter[$hook] ) ) return; print '<pre>'; print_r( $wp_filter[$hook] ); print '</pre>'; } // Вывод print_function_for_hook ('woocommerce_before_shop_loop_item'); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
WP_Hook Object ( [callbacks] => Array ( [10] => Array ( [woocommerce_template_loop_product_link_open] => Array ( [function] => woocommerce_template_loop_product_link_open [accepted_args] => 1 ) ) ) [iterations:WP_Hook:private] => Array ( ) [current_priority:WP_Hook:private] => Array ( ) [nesting_level:WP_Hook:private] => 0 [doing_action:WP_Hook:private] => ) |
Хук (крючек) — такой массив ссылок функций. Можно представить в виде папки, которая собирает функции, а потом мы где нужно запускаем ее и получается запуск всех функций пакетом. add_action (‘хук’, ‘функция’) — функция которая добавляет в хук другую функцию. do_action (‘хук’) — функция, которая приводит хук в исполнение.
А как определить порядок применения функций, навешанных на хук?
Не знаю. Но, а если посмотреть какие функци подключены к хуку описанным способом и потом каждую функцию поискать в файлах где они подключаются? Там же можно увидеть приоритет подключения.
Найти функцию, в каком она находится файле, можно поиском по тексту. Например через Total Commander можно найти текст поиском по каталогу. Или в Visual Studio Code можно открыть папку с сайтом и выполнить поиск.