Добавляем и удаляем элементы на новой панели в WordPress 3.3

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

Удаление ссылок из тулбара, 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 );

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

Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.

Смотрите также