Настраиваем административную панель WordPress

Согласно опросам, проведенным зарубежными сайтами, нововведение «Административная панель» (та, что вверху ВП) большинству пользователей либо очень не нравится, либо им все равно, либо же они находят ее очень удобной. Однако преобладающее мнение, о том, что панель бесполезна, никак не повлияло на разработчиков CMS. Она останется. Навсегда. И если она вас не устраивает в состоянии по-умолчанию, то всегда есть возможность ее настроить!

Отключаем админ.панель для определенных пользователей

По-умолччанию, каждый зарегистрированный пользователь может настроить отображение панели на сайте. Для того, чтобы изменить свои предпочтения, просто перейдите в меню Пользователи > Ваш профиль и выберите нужные вам настройки как на скриншоте ниже:

admin-bar-settings[1]

К сожалению, очень утомительно настраивать профили сразу для множества пользователей. К счастью, мы только начинаем, поэтому читаем дальше для познания более эффективных путей отключения и модификации Административной панели WordPress.

Отключаем админ.панель для всех пользователей текущей темы

Для полного отключения админ.панели для всех пользователей вашей темы (и, как следствие, вашего сайта), добавьте этот сниппет в ваш файл functions.php темы:

// отключаем административную панель
show_admin_bar(false);

Также, в качестве альтернативны, можно использовать следующий метод, который использует фильтр для функции show_admin_bar:

// отключаем административную панель
add_filter('show_admin_bar', '__return_false');

Третий способ спрятать админ.панель — использовать CSS. Для этого, вставьте следующее в файл style.css (или другую таблицу стилей) вашей темы:

/* прячем админ.панель */
#wpadminbar { display:none; }

Отключаем админ.панель для всех, кроме админов

Расширяя предыдущий пример, вот два сниппета, которые отключат админ.бар для не-Админов и редакторов. Вставьте сего в файл functions.php:

// показываем панель только для администраторов
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');
}

Как вы наверное догадались, любой тип пользователь можно использовать вместе с current_user_can(), поэтому можно с легкостью прятать/отображать админ.панель для определенных групп пользователей.

Чистим страницу профиля пользователя

После отключения админ.панели, вы возможно захотите спрятать отображение ее настроек на каждой страницы профиля пользователей. Самый простой способ — использовать следующую функцию:

function hideAdminBar() { ?>
<style type="text/css">.show-admin-bar { display: none; }</style>
<?php }
add_action('admin_print_scripts-profile.php', 'hideAdminBar');

Просто поместите код в файл functions.php и все готово. Больше настройки админ.панели не будут отображаться.

Всегда показываем админ.панель

Есть способ отображать административную панель даже если вы не залогинены на сайте. В качестве бонуса удобная кнопка “Войти” добавится в панель для боле удобной навигации. Просто вставляем следующий сниппет в файл functions.php темы:

// всегда отображаем админ.панель
function pjw_login_adminbar( $wp_admin_bar) {
	if ( !is_user_logged_in() )
	$wp_admin_bar->add_menu( array( 'title' => __( 'Войти' ), 'href' => wp_login_url() ) );
}
add_action( 'admin_bar_menu', 'pjw_login_adminbar' );
add_filter( 'show_admin_bar', '__return_true' , 1000 );

Перемещаем админ.панель вниз

Хотите отображать админ.панель внизу страницы, вместо текущего ее положения сверху? Снова таки делаем все через файл functions.php:

// перемещаем админ.панель вниз
function fb_move_admin_bar() { ?>
	<style type="text/css">
		body {
			margin-top: -28px;
			padding-bottom: 28px;
		}
		body.admin-bar #wphead {
			padding-top: 0;
		}
		body.admin-bar #footer {
			padding-bottom: 28px;
		}
		#wpadminbar {
			top: auto !important;
			bottom: 0;
		}
		#wpadminbar .quicklinks .menupop ul {
			bottom: 28px;
		}
	</style>
<?php }
// в админке
add_action( 'admin_head', 'fb_move_admin_bar' );
// на сайте
add_action( 'wp_head', 'fb_move_admin_bar' );

Этот код добавляет необходимый CSS-код как на публичные страницы, так и в админку. Для отключения одного из них, просто закомментируйте или вытрите соответствующую строку с add_action() в конце кода. Также можно скопировать/вставить код CSS в ваш файл style.css темы, если код нужен только для админки.

Добавляем или убираем ссылки из админ.панели

Способ очень полезен для мультисайтового WordPress, где лишние ссылки только мешаются. Следующий код служит для удаления ссылок и/или меню (с помощью functions.php):

// убираем ссылки/меню из админ.панели
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(‘comments’) для удаления выпадающего списка комментариев. Для удаления других ссылок/меню смотрите в файл /wp-includes/admin-bar.php для соответствующего ID. Вот список некоторых из них для начала:

  • my-account – ссылка на ваш аккаунт (аватары отключены)
  • my-account-with-avatar – ссылка на ваш аккаунт (аватары включены)
  • my-blogs – меню “Мои сайты”, если у пользователя больше одного сайта
  • get-shortlink – предоставляет короткую ссылку для этой страницы
  • edit – Ссылка на Редактирование/Написание записи
  • new-content – ссылка на выпадающее меню «Добавить новый»
  • comments – ссылка на выпадающие «Комментарии»
  • appearance – ссылка на выпадающее «Внешний вид»
  • updates – выпадающее «Обновления»
VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top