Я видел несколько решений этого на буржуйских сайтах, но когда захотел подробнее узнать об используемых там функциях на кодексе, оказалось, что на самом деле они устаревшие. Поэтому я написал свой вариант и выкладываю его здесь.
$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 );
$wp_admin_bar->add_node( $args );
Массив $args может содержать следующие параметры:
id
(строка) ID нового элемента
title
(строка) Заголовок нового элемента — его мы и будем видеть на панели
parent
(строка) Вы можете указать ID родительского элемента, чтобы ваша ссылка появилась в выпадающем меню или ID группы
href
(строка) Значение атрибута href у ссылки. Можете ничего не указывать, тогда получится текстовый элемент (без ссылки).
group
(логическое) Вы можете превратить элемент в группу. Сами по себе группы невидимы в тулбаре, но их можно использовать в качестве родительских элементов.
meta
(массив) параметры:
В этом примере я добавлю ссылку на свой блог:
function add_bar_items( $wp_admin_bar ) { $args = array( 'id' => 'truemisha', 'title' => 'Truemisha.ru, блог веб-разработчика', 'href' => 'https://misha.agency/', '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 );
На скриншоте вы видите результат обоих примеров, панель управления содержит только одну, добавленную мной ссылку.
как сделать кнопку способную добавлять запись в определенную рубрику
может существует get запрос под эти цели ? 🙂
например new-post.php?category=nazvanie
боюсь, что для этого придётся переработать весь метабокс рубрик.
Слишком сложно)
Я думаю тогда проще проверить HTTP_REFERER и через js включить нужный чекбокс .
решил вопрос через js, только проверял не HTTP_REFERER, а параметры в GET
отлично работает 🙂