Настройка админ-панели WordPress
В этой статье мы поговорим о том, как полностью убрать админ-панель, или как оставить, но с нужными для нас ссылками.
Каждый пользователь в настройках своего профиля может включить/отключить отображение админ-панели.
В этой статье даются глобальные советы, т.е. все изменения касаются всех пользователей (или исключение только админ).
Полное удаление админ-панели
Вставьте этот код в файл functions.php (лежит в корне активной темы):
add_filter( 'show_admin_bar', '__return_false' ); ?> <?php function hide_admin_bar_settings() { ?> <style type="text/css"> .show-admin-bar { display: none; } </style> <?php } function disable_admin_bar() { add_filter( 'show_admin_bar', '__return_false' ); add_action( 'admin_print_scripts-profile.php', 'hide_admin_bar_settings' ); } add_action( 'init', 'disable_admin_bar' , 9 );
Удаление админ-панели для всех, кроме админа
function hide_admin_bar_settings() { ?> <style type="text/css"> .show-admin-bar { display: none; } </style> <?php } function disable_admin_bar() { if ( !current_user_can("administrator") ) { add_filter( 'show_admin_bar', '__return_false' ); add_action( 'admin_print_scripts-profile.php', 'hide_admin_bar_settings' ); } } add_action( 'init', 'disable_admin_bar' , 9 );
Если не хотите играться с кодом, то могу вам порекомендовать плагины.
Плагины
Admin Bar Disabler
Плагин позволяет скрывать полностью панель для всех или определенных ролей пользователей. Скачать
WP Admin Bar Removal
Никаких настроек, поставил и все готово. Плагин глобально отключит админ-панель на сайте для всех пользователей. А в админке вверху появится ссылка на сайт, имя текущего пользователя и ссылка для выхода.
Скачать
Как перенести админ-панель вниз?
Вставьте этот код в файл functions.php (лежит в корне активной темы):
/* * Отключение стандартных CSS в HTML-коде */ function my_filter_head() { remove_action('wp_head', '_admin_bar_bump_cb'); } add_action('get_header', 'my_filter_head'); /* * CSS для прилепления админки к нижнему краю страницы */ function true_move_admin_bar() { echo ' <style type="text/css"> html{margin-bottom:32px !important} * html body{margin-bottom:32px !important} #wpadminbar{top:auto !important;bottom:0} #wpadminbar .menupop .ab-sub-wrapper{bottom:32px;-moz-box-shadow:2px -2px 5px rgba(0,0,0,.2);-webkit-box-shadow:2px -2px 5px rgba(0,0,0,.2);box-shadow:2px -2px 5px rgba(0,0,0,.2)} @media screen and ( max-width:782px ){ html{margin-bottom:46px !important} * html body{margin-bottom:46px !important} #wpadminbar{position:fixed} #wpadminbar .menupop .ab-sub-wrapper{bottom:46px} } </style> '; } //add_action( 'admin_head', 'true_move_admin_bar' ); // в админке add_action( 'wp_head', 'true_move_admin_bar' ); // на сайте
Обратите внимание на две последних строки кода.
Первая закомментирована — она опускает админ-панель в админке. Если это надо, то раскомментируйте эту строку.
Вторая — опускает админ-панель на сайте.
Удаление ссылок в админ-панели
Админ-панель можно оставить, но с нужными для нас ссылками.
Например, следующий фрагмент кода удалит ссылки:
- Название сайта и его меню
- Комментарии
- Логотип WordPress и его меню
- Настроить
- Добавить
- Обновление
function my_admin_bar_render() { global $wp_admin_bar; $wp_admin_bar->remove_menu('comments'); $wp_admin_bar->remove_menu('appearance'); $wp_admin_bar->remove_menu('site-name'); $wp_admin_bar->remove_menu('customize'); $wp_admin_bar->remove_menu('wp-logo'); $wp_admin_bar->remove_menu('new-content'); $wp_admin_bar->remove_menu('updates'); } add_action( 'wp_before_admin_bar_render', 'my_admin_bar_render' );
Чтобы удалить ссылку на редактирование текущей записи/страницы добавьте:
$wp_admin_bar->remove_menu('edit');
Отображение админ-панели для всех посетителей
В панели будет отображаться ссылка на страницу авторизации и иконка формы поиска.
Вставьте этот код в файл functions.php (лежит в корне активной темы):
function pjw_login_adminbar( $wp_admin_bar) { if ( !is_user_logged_in() ) $wp_admin_bar->add_menu( array( 'title' => __( 'Log In' ), 'href' => wp_login_url() ) ); } add_action( 'admin_bar_menu', 'pjw_login_adminbar' ); add_filter( 'show_admin_bar', '__return_true' , 1000 );
Иконку поиска также можно скрыть:
if ( !function_exists('hide_admin_bar_search') ) { function hide_admin_bar_search () { ?> <style type="text/css"> #wpadminbar #adminbarsearch { display: none; } </style> <?php } add_action('admin_head', 'hide_admin_bar_search'); add_action('wp_head', 'hide_admin_bar_search'); }
Добавление своих ссылок в админ-панель
Одна ссылка:
add_action( 'admin_bar_menu', 'toolbar_link_to_mypage', 999 ); function toolbar_link_to_mypage( $wp_admin_bar ) { $args = array( 'id' => 'my_page', 'title' => 'Моя страница', 'href' => 'https://mysite.com/my-page/', 'meta' => array( 'class' => 'my-toolbar-page' ) ); $wp_admin_bar->add_node( $args ); }
Укажите свое название вместо Моя страница, и свою ссылку вместо https://mysite.com/my-page/
Добавление группы ссылок в виде выпадающего меню:
add_action( 'admin_bar_menu', 'social_media_links', 900 ); function social_media_links($wp_admin_bar) { $args = array( 'id' => 'social_media', 'title' => 'Социальные сети', 'meta' => array( 'class' => 'first-toolbar-group' ), ); $wp_admin_bar->add_node( $args ); $args = array(); array_push($args,array( 'id' => 'twitter', 'title' => 'Twitter', 'href' => 'https://www.twitter.com', 'parent' => 'social_media', )); array_push($args,array( 'id' => 'youtube', 'title' => 'YouTube', 'href' => 'https://www.YouTube.com', 'parent' => 'social_media', 'meta' => array( 'class' => 'first-toolbar-group' ), )); array_push($args,array( 'id' => 'fb', 'title' => 'Facebook', 'href' => 'https://www.facebook.com', 'parent' => 'social_media', )); sort($args); for($a=0;$a<sizeOf($args);$a++) { $wp_admin_bar->add_node($args[$a]); } }
Ссылка на добавление новой записи:
add_action( 'admin_bar_menu', 'make_parent_node', 999 ); function make_parent_node( $wp_admin_bar ) { $args = array( 'id' => 'new-post', // id of the existing child node (New > Post) 'title' => 'Новая запись', // alter the title of existing node 'parent' => false, // set parent to false to make it a top level (parent) node ); $wp_admin_bar->add_node( $args ); }
Напишите в комментариях, что еще можно сделать с админ-панелью.