wordpress add_action, do_action
Почему это работает
add_action('my_hook_test', 'my_hook_func', 10, 1 );
do_action('my_hook_test', 'test');
function my_hook_func($title){
print_r($title);
}
А вот это не работает
add_action('admin_menu', 'my_hook_func', 10, 1 );
do_action('admin_menu', 'test');
function my_hook_func($title){
print_r($title);
}
Как применить do_action на admin_menu
Ответы (1 шт):
Автор решения: KAGG Design
→ Ссылка
Они работают обе. На пустой странице фронтенда их видно. В бэкенде их вывод не видно, потому что он перекрыт стилями. Откройте исходный код страницы - увидите.
У вас какая задача? Вывести что-то перед началом вывода меню? Ядро вызывает такое действие: do_action( 'admin_menu', '' );. Поэтому, если в вашем коде присутствует только add_action('admin_menu', 'my_hook_func', 10, 1 );, то ваш print_r выводит пустую строку в этот момент.
Для теста используйте код
add_action( 'admin_menu', 'my_admin_menu');
function my_admin_menu( $title ) {
echo '************************';
}
Откройте исходный код страницы (Ctrl+U), увидите эти звёздочки.
На этом хуке обычно регистрируют страницу меню.