Главная > Веб мастерская > WordPress > Как изменить верхнюю панель (admin bar)

Как изменить верхнюю панель (admin bar)

Верхняя панель (admin bar). Как изменить ее вид / функции?

 Верхняя панель (admin bar)В WordPress версиях начиная аж с 3.1 появилась довольно спорная функция (и до последней версии, включительно, ничего не изменилось в этой функции) в виде «верхней панели», так же известной как «admin bar».

Для кого-то эта панелька оказалась совершенно ненужной и лишней, а кто-то теперь и представить себе не может, как без нее жить. Лично я пока еще не определился нужна ли она мне или нет. Но в любом случае я хочу рассказать про различные хаки и плагины, связанные с этой панелью – от банального удаления панели до ее полной модификации.

1. Простое скрытие верхней панели

скрытие панели

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

2. Простое удаление верхней панели

Теперь удаляем верхнюю панель полностью для всех зарегистрированных пользователей блога, включая и админа. Откройте файл functions.php вашего шаблона и добавьте туда строчку:

add_filter('show_admin_bar', '__return_false');

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

3. Полное удаление верхней панели

Чтобы полностью избавиться от верхней панели, включая опции выбора в профиле пользователя надо использовать более объемный код. Вставьте в 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 );

 4. Простое удаление верхней панели для всех, кроме админов

Можно скрыть панель от всех, кроме, скажем, админов блога. Для этого вставьте в functions.php следующий код:

function my_function_admin_bar($content) {
	return ( current_user_can("administrator") ) ? $content : false;
}
add_filter( 'show_admin_bar' , 'my_function_admin_bar');

И опять же, этот код скроет панель для всех, кроме администраторов — но при этом в профиле пользователей все равно останется выбор опций показа панели, хоть он и не будет работать.

5. Полное удаление верхней панели для всех, кроме админов

Теперь про полное удаление панели (вместе с опциями выбора в профиле) для всех пользователей, кроме админов. Вставьте в functions.php следующий код:

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 );

С помощью этого кода управлять показом панели из профиля смогут только администраторы, а все остальные пользователи не увидят ни панели, ни опций ее показа в профиле.

6. Плагин Admin Bar Disabler

Из десятка подобных плагинов Admin Bar Disabler показался мне наиболее удобным. Он умеет делать все то, что я перечислил выше. То есть скрывать полностью панель для всех или определенных ролей пользователей:

Admin Bar Disabler

 

Если вам лениво прописывать различный код в functions.php, то этот плагин избавит вас от необходимости делать что-либо вручную.

7. Перенос панели сверху вниз

Панельку можно расположить внизу:

4

Для этого вставьте в functions.php следующий код:

function fb_move_admin_bar() {
     echo '
     <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>';
}
 
//в консоли
add_action( 'admin_head', 'fb_move_admin_bar' );
//при просмотре сайта
add_action( 'wp_head', 'fb_move_admin_bar' );

Для этой же цели можно использовать плагин Stick Admin Bar To Bottom.

8. Вывод верхней панели для всех посетителей

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

5

Вставьте в 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 );

Но при этом панель будет показываться всегда, независимо от настроек, которые установил пользователь в своем профиле.

9. Скрытие блока «Поиск» в верхней панели

Для удаления этого блока добавьте в functions.php код:

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');
}

После этого блок поиска исчезнет для всех посетителей блога.

10. Добавление и удаление ссылок в верхней панели

Можно удалить из панели некоторые меню или, наоборот, их добавить. Например, можно убрать меню «Комментарии» и «Внешний вид»

Для удаления этих меню вставьте в functions.php код:

function my_admin_bar_render() {
	global $wp_admin_bar;
	$wp_admin_bar->remove_menu('comments');
	$wp_admin_bar->remove_menu('appearance');
}
add_action( 'wp_before_admin_bar_render', 'my_admin_bar_render' );

Как видно из кода, чтобы удалить определенные меню из панели достаточно знать их обозначения. Полный список этих меню можно найти в файле «wp-includes/admin-bar.php«, а вот некоторые из них:

  • my-account — ссылка на меню профиля (при отключенных граватарах)
  • my-account-with-avatar — ссылка на меню профиля (граватары включены)
  • my-blogs — ссылка на меню «мои сайты»
  • get-shortlink — меню «короткая ссылка» для текущей записи
  • edit — меню «редактировать запись»
  • new-content — меню «новый материал»
  • comments — меню «комментарии»
  • appearance — меню «внешний вид»
  • updates — меню «обновления»

Для добавления в панель ссылок код должен быть немного сложнее. Например, чтобы добавить в меню «Новый материал» ссылку на «Медиафайлы«:

8

Надо добавить в файл functions.php следующий код:

function my_admin_bar_render() {
	global $wp_admin_bar;
	$wp_admin_bar->add_menu( array(
		'parent' => 'new-content', //'false' для корневого меню
					   //или ID нужного меню
		'id' => 'new_media', // ID ссылки
		'title' => __('Media'), //заголовок ссылки
		'href' => admin_url( 'media-new.php') //имя файла	
	));
}
add_action( 'wp_before_admin_bar_render', 'my_admin_bar_render' );

Это самый простой вариант добавления своей ссылки в верхнюю панель. В Codex’е вы можете увидеть код, который будет выводить отдельное меню «Facebook» с внешними ссылками:

Плагин Admin Bar Minimiser

Забавно, что плагинов удаления верхней панели существует с десяток минимум, а вот создать плагин для редактирования, добавления и удалению меню в панели никому в голову не пришло.

Может я плохо искал?

11. Плагин Admin Bar Minimiser

Данный плагин позволяет плавно скрыть или показать панель при нажатии на маленькие кнопочки плагина:

Плагин Admin Bar Minimiser

При нажатии на «Hide» панель будет скрыта, а при нажатии на «Show» опять показана. По сути, конечно, бесполезный плагин, но возможно кому-нибудь он пригодится. Слова «Show» и «Hide» вы можете перевести на русский в файле плагина admin-bar-minimiser.php, просто найдите их поиском и замените.

12. Плагин WP Custom Admin Bar

Еще один плагин управления верхней панелью. Помимо полного удаления панели для выбранных ролей пользователей плагин позволяет настроить внешний вид панели через css:

Плагин WP Custom Admin Bar

К сожалению, встроенных готовых стилей плагин не предоставляет.

13. Плагин Admin Bar Theme Switcher

Плагин Admin Bar Theme Switcher

Этот плагин позволяет пользователям менять шаблон блога прямо из панели:

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

14. Плагин Admin Menus Fixed

Единственная задача плагина Admin Menus Fixed это «подружить» новую верхнюю панель WordPress с меню от плагина Ozh Admin Drop Down Menu

Но плагин полезен только при выводе верхней панели в консоли. Если вы не выводите там панель (а зачем, если плагин Ozh Admin Drop Down Menu практически повторяет собой верхнюю панель?), то и плагин вам вряд ли может понадобиться.

NEW!!! Полезное, нужное, важное:

Где заработать в интернете деньги? Надёжно, честно, без обмана!
Платежные системы, кошельки и обменники для работы

Лучшие хостинги, сервера и прочее для сайтов

Смотрите также

Использование DISQUS для комментирования на WordPress

DISQUS обладает широким диапазоном преимуществ, среди которых улучшенная защита от спама и облегчение пользовательской задачи комментирования путем входа посредством одного универсального логина...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *