add_admin_bar_menus
Срабатывает сразу после того, как WP создал базовые пункты админ-бара.
Его можно использовать, чтобы добавлять или убирать элементы панели.
Порядок выполнения:
- add_admin_bar_menus
- admin_bar_menu — здесь можно работать с $wp_admin_bar без глобала.
- wp_before_admin_bar_render
- wp_after_admin_bar_render
Используйте приоритет 0–99, чтобы правильно расположить свой пункт относительно системных.
Иногда удобнее использовать аналогичный хук admin_bar_menu, который срабатывет после этого, и который в параметрах коллбэк функции передаёт объект WP_Admin_Bar.
Использование
add_action( 'add_admin_bar_menus', 'wp_kama_add_admin_bar_menus_action' );
/**
* Function for `add_admin_bar_menus` action-hook.
*
* @return void
*/
function wp_kama_add_admin_bar_menus_action(){
// action...
}
Примеры
#1 Демонстрация использования
add_action( 'add_admin_bar_menus', 'add_toolbar_node', 80 );
function add_toolbar_node() {
global $wp_admin_bar;
$wp_admin_bar->add_node(
[
'id' => 'my-link',
'title' => 'На главную',
'href' => home_url(),
]
);
} #2 Удаление базовых элементов (ссылок) из тулбара
Я видел решение этой задачи в интернете - оно не очень хорошее, потому что элементы удаляются после того, как они были добавлены в панель. Было бы лучше вообще не добавлять их туда. Это делается следующим образом: Все доступные элементы меню WP для удаления (для приведенного выше кода). Скопируйте элементы из этого массива в приведенный выше код, чтобы удалить необходимые элементы меню в соответствии с вашим текущим требованием./**
* Удаление основных элементов (ссылок) из панели инструментов (Admin Bar, Toolbar).
*/
add_action( 'add_admin_bar_menus', 'kama_remove_default_wp_menu_items', 0 );
function kama_remove_default_wp_menu_items() {
/**
* Для полного списка доступных элементов:
* @see WP_Admin_Bar::add_menus()
* @see https://wp-kama.com/note/removing-basic-elements-links-from-the-toolbar
*/
$remove_wp_menus_items = [
/** Логотип WordPress (со ссылками). {@see wp_admin_bar_wp_menu()} */
'wp_admin_bar_wp_menu',
/** Customizer. {@see wp_admin_bar_customize_menu()} */
'wp_admin_bar_customize_menu',
/** Комментарии. {@see wp_admin_bar_comments_menu()} */
'wp_admin_bar_comments_menu',
/** Дополнительная группа справа (поиск и аккаунт). {@see wp_admin_bar_add_secondary_groups()} */
'wp_admin_bar_add_secondary_groups',
];
foreach( $remove_wp_menus_items as $callback ){
$priority = has_action( 'admin_bar_menu', $callback );
if( $priority !== false ){
remove_action( 'admin_bar_menu', $callback, $priority );
}
}
}
$remove_wp_menus_items = [
/// Связанные с пользователем (справа).
/** Внутренние ссылки меню профиля. {@see wp_admin_bar_my_account_menu()} */
'wp_admin_bar_my_account_menu',
/** Весь пункт меню профиля. {@see wp_admin_bar_my_account_item()} */
'wp_admin_bar_my_account_item',
/** Поиск. {@see wp_admin_bar_search_menu()} */
'wp_admin_bar_search_menu',
/// Связанные с сайтом
/** Логотип WordPress (со ссылками). {@see wp_admin_bar_wp_menu()} */
'wp_admin_bar_wp_menu',
/** Мои сайты. {@see wp_admin_bar_my_sites_menu()} */
'wp_admin_bar_my_sites_menu',
/** Сайты. {@see wp_admin_bar_site_menu()} */
'wp_admin_bar_site_menu',
/** Редактировать сайт. {@see wp_admin_bar_edit_site_menu()} */
'wp_admin_bar_edit_site_menu',
/** Настроить тему. {@see wp_admin_bar_customize_menu()} */
'wp_admin_bar_customize_menu',
/** Обновления. {@see wp_admin_bar_updates_menu()} */
'wp_admin_bar_updates_menu',
/// Связанные с контентом.
/** Комментарии. {@see wp_admin_bar_comments_menu()} */
'wp_admin_bar_comments_menu',
/** Добавить запись, страницу, медиафайл и т. д.. {@see wp_admin_bar_new_content_menu()} */
'wp_admin_bar_new_content_menu',
/** Редактировать. {@see wp_admin_bar_edit_menu()} */
'wp_admin_bar_edit_menu',
/// Другие.
/** Дополнительная группа (поиск и аккаунт) справа. {@see wp_admin_bar_add_secondary_groups()} */
'wp_admin_bar_add_secondary_groups',
];
Список изменений
| С версии 3.1.0 | Введена. |
Где вызывается хук
do_action( 'add_admin_bar_menus' );