Настраиваем WordPress admin bar
- 27 Июн 2011
Добавляем ссылки и меню до Admin bar
Начиная с версии 3.1 в Вордпрес появился Admin bar, кому то это нововведение нравится кому то нет, и в этой статье мы рассмотрим как можно изменить панель под себя или совсем отключить ее.

Добавим новый пункт в меню «Новый материал», следующий код вставляем в файл functions.php вашей темы:
function media_admin_bar_handler() { global $wp_admin_bar; $wp_admin_bar->add_menu( array( // 'false' для главное меню, или ID меню к котором добавляем подменю 'parent' => 'new-content', // ID для нашего пункта меню 'id' => 'new_media', // Заголовок меню 'title' => __('Media'), // Ссылка для меню 'href' => admin_url( 'media-new.php'), // можна передать масив параметров: // array( 'html' => '', 'class' => '', 'onclick' => '', target => '', title => '' ); 'meta' => false )); } add_action( 'wp_before_admin_bar_render', 'media_admin_bar_handler' );
Ещё один пример, создадим отдельное меню с ссылками на ваши другие сайты.

Код оформлен в виде класса, весь код вставляем в файл functions.php.
Для изменения пунктов добавляемого меню, достаточно изменить функцию my_links().
add_root_menu(«Название», «id») — добавляем главное меню.
add_sub_menu(«Название», «http://ссылка», «id») — добавляем подменю
id подменю должно совпадать с id главного меню.
class MyLinksMenu { function MyLinksMenu() { add_action('admin_bar_menu', array($this, "my_links")); } function add_root_menu($name, $id, $href = FALSE) { global $wp_admin_bar; $wp_admin_bar->add_menu( array( 'id' => $id, 'title' => $name, 'href' => $href ) ); } function add_sub_menu($name, $link, $root_menu, $meta = FALSE) { global $wp_admin_bar; $wp_admin_bar->add_menu( array( 'parent' => $root_menu, 'title' => $name, 'href' => $link, 'meta' => $meta) ); } function my_links() { $this->add_root_menu("Мои сайты", "mylnk"); $this->add_sub_menu("Twitter", "http://twitter.com/karlkori/", "mylnk"); $this->add_sub_menu("Другой класный блог", "http://example.com", "mylnk"); } } add_action("init", "myLinkMenuInit"); function myLinkMenuInit() { global $myLnk; $myLnk = new MyLinksMenu(); }
Удаляем ссылки и меню с Admin bar
Следующий код удаляем меню комментариев.
function mytheme_admin_bar_render() { global $wp_admin_bar; $wp_admin_bar->remove_menu('comments'); } add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );
Для удаления других меню в remove_menu( ) указываем другие id страниц, вот некоторые из них:
- my-account – профиль
- my-account-with-avatar – аватарка
- my-blogs – мои сайты в WordPress MU
- get-shortlink – короткая ссылка
- edit – редактировать запись
- new-content – новый материал
- comments – комментарии
- appearance – внешний вид
- updates – обновления
Отключаем Admin bar для всех пользователей
Добавляем код в functions.php вашей темы.
Если пользователи вашего сайта могут изменять темы то лучше будет подключить этот код в виде плагина, или использовать готовый плагин, который можно найти на сайте
add_filter('show_admin_bar', '__return_false');
Отключаем Admin bar для всех пользователей кроме администраторов
// Показывать только администратору if ( !current_user_can('manage_options') ) { add_filter('show_admin_bar', '__return_false'); } // Проказывать только администратору и редакторам if ( !current_user_can('edit_posts') ) { add_filter( 'show_admin_bar', '__return_false' ); }
Наведены выше примеры отключают Admin bar, но в настройках профиля пользователей остаются нерабочие опции включения\отключения Admin bar, что бы их скрыть добавляем следующий код:
function hideAdminBar() { echo '<style type="text/css">.show-admin-bar { display: none; }</style>'; } add_action('admin_print_scripts-profile.php', 'hideAdminBar');