Добавляем и удаляем элементы на новой панели в 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 );

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

Источник: misha.blog

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

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: