Настройка админ-панели 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 );
}
Напишите в комментариях, что еще можно сделать с админ-панелью.






Коментарі