Я видел несколько решений этого на буржуйских сайтах, но когда захотел подробнее узнать об используемых там функциях на кодексе, оказалось, что на самом деле они устаревшие. Поэтому я написал свой вариант и выкладываю его здесь.
Удаление ссылок из тулбара, remove_node()
$wp_admin_bar->remove_node($id); |
Для того, чтобы узнать $id, нужно найти HTML тулбара в исходном коде, например через Ctrl + U или в инструментах разработчика.
<li id="wp-admin-bar-new-post" class=""> ... </li> |
$id будет равен new-post
<li id="wp-admin-bar-user-info" class=""> ... </li> |
А здесь это user-info. Точно таким же образом можно удалять и субменю, у них тоже есть свой $id.
В этом примере я избавлюсь от всех элементов, которые есть по умолчанию на панели управления в только что установленном WordPress.
function remove_bar_items( $wp_admin_bar ) { $wp_admin_bar->remove_node('wp-logo'); $wp_admin_bar->remove_node('site-name'); $wp_admin_bar->remove_node('comments'); $wp_admin_bar->remove_node('new-content'); $wp_admin_bar->remove_node('my-account'); } add_action( 'admin_bar_menu', 'remove_bar_items', 999 ); |
Добавляем собственные ссылки в тулбар, используя функцию add_node()
$wp_admin_bar->add_node( $args ); |
Массив $args может содержать следующие параметры:
id
(строка) ID нового элемента
title
(строка) Заголовок нового элемента — его мы и будем видеть на панели
parent
(строка) Вы можете указать ID родительского элемента, чтобы ваша ссылка появилась в выпадающем меню или ID группы
href
(строка) Значение атрибута href у ссылки. Можете ничего не указывать, тогда получится текстовый элемент (без ссылки).
group
(логическое) Вы можете превратить элемент в группу. Сами по себе группы невидимы в тулбаре, но их можно использовать в качестве родительских элементов.
meta
(массив) параметры:
- html — будет добавлен сразу же после ссылки …
- class — CSS-класс для элемента
- onclick — JavaScript-событие для ссылки
- target — значение html-атрибута target
- title — значение html-атрибута title
- tabindex — значение html-атрибута tabindex
В этом примере я добавлю ссылку на свой блог:
function add_bar_items( $wp_admin_bar ) { $args = array( 'id' => 'truemisha', 'title' => 'Truemisha.ru, блог веб-разработчика', 'href' => 'https://misha.blog/', 'parent' => false, 'group' => false, 'meta' => array( 'class' => 'true', 'target' => 'blank', 'title' => 'Читать блог' ) ); $wp_admin_bar->add_node( $args ); } add_action( 'admin_bar_menu', 'add_bar_items', 999 ); |
На скриншоте вы видите результат обоих примеров, панель управления содержит только одну, добавленную мной ссылку.
Источник: misha.blog