Самой востребованной настройкой в корпоративных блогах является кастомизация административной части – скрытие определенных разделов и сообщений, переименование меню, добавление своего логотипа – все то, что делает работу с админкой более персонализированной и удобной.
Логотип на странице входа
Чтобы сменить стандартный логотип на странице входа на свой, нужно добавить в файл functions.php:
function my_custom_login_logo(){ echo ' h1 a { background-image:url('.get_bloginfo('template_directory').'/images/custom-login-logo.jpg) !important; } '; } add_action('login_head', 'my_custom_login_logo');
custom-login-logo.jpg – это ваш логотип
Логотип в административной части
Чтобы изменить логотип, отображаемый в верхнем левом углу административной части, добавьте в functions.php:
function my_custom_logo(){ echo ' #header-logo { background-image: url('.get_bloginfo('template_directory').'/images/custom-admon-logo.jpg) !important; } '; } add_action('admin_head', 'my_custom_logo');
custom-admon-logo.jpg – это ваш логотип для административной части блога
Изменение ссылки входа
Чтобы упростить ссылку на страницу входа, а так же защитить страницу блога от атак автоматических скриптов, можно эту ссылку изменить, сделав более человеческой. Для этого вставьте в файл .htaccess, находящемся в корне сайта:
RewriteRule ^login$ http://вашсайт.ru/wp-login.php [NC,L]
вашсайт.ru – это домен вашего сайта
В файл functions.php нужно добавить:
/* перенаправление (редирект) с login на /wp-login.php и с admin на /wp-admin */ add_action('template_redirect', 'custom_login_redirect'); function custom_login_redirect(){ if( strpos($_SERVER['REQUEST_URI'], 'login')!==false ) $loc = '/wp-login.php'; elseif( strpos($_SERVER['REQUEST_URI'], 'admin')!==false ) $loc = '/wp-admin/'; if( $loc ){ header( 'Location: '.get_option('site_url').$loc, true, 303 ); exit; } }
Отключение показа ошибок PHP
Для работающих в блоге вовсе не обязательно видеть, какие ошибки возникают. А вот администратору будут интересны сообщения о возникающих ошибках. Поэтому есть смысл скрыть сообщения об ошибках от всех, и показывать их только администратору. Для этого достаточно вставить в functions.php:
add_action('init', 'enable_errors'); function enable_errors(){ if( $GLOBALS['user_level'] < 5 ) return; error_reporting(E_ALL ^ E_NOTICE); ini_set("display_errors", 1); }
Отключение пунктов меню
Навигационное меню административной части содержит множество пунктов, которые могут и не потребоваться в повседневной работе. Те пункты, которые вы считаете не нужными, можно скрыть, добавив в functions.php следующий код:
function remove_menus(){ global $menu; $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins')); end ($menu); while (prev($menu)){ $value = explode(' ', $menu[key($menu)][0]); if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);} } } add_action('admin_menu', 'remove_menus');
Обратите внимание на третью строчку – в ней перечисляются пункты, которые будут скрыты. Вы можете указать любой из пунктов:
- __(‘Dashboard’) — Консоль;
- __(‘Posts’) — Записи
- __(‘Media’) — Медиафайлы
- __(‘Links’) — Ссылки (для WordPress 3.4 и более старых версий)
- __(‘Pages’) — Страницы
- __(‘Comments’) — Комментарии
- __(‘Appearance’) — Внешний вид
- __(‘Tools’) — Инструменты
- __(‘Users’) — Пользователи
- __(‘Settings’) — Настройки
- __(‘Plugins’) — Плагины
Для удаления пунктов меню так же есть специальные функции remove_menu_page() и remove_submenu_page(). Они служат для удаления главных пунктов и подпунктов навигационного меню административной части.
Например, нужно удалить пункт Добавить новый в разделе Плагины. Для этого нужно вставить в файл functions.php:
remove_submenu_page( 'plugins.php', plugin-install.php' );
Или если нужно полностью удалить разделы Плагины и Внешний вид. Для этого нужно добавить в файл functions.php:
remove_menu_page( 'plugins.php' ); remove_menu_page( 'themes.php' );
Следует понимать, что эти настройки не запрещают пользоваться ссылками на разделы, они лишь скрывают их.
Удаление сообщений об обновлениях
Другим не обязательно знать, что нужно обновить какой-нибудь плагин или тему. Поэтому сообщения об обновлениях, которые они увидят в административной части, можно отключить. Для этого нужно добавить в файл functions.php:
if( !current_user_can( 'edit_users' ) ){ //для WordPress 2.9- add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) ); // для WordPress 3.0+ add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) ); }
Теперь сообщения об обновлениях будут видеть только администраторы.
Удаление лишних административных виджетов
Если вы считаете, что некоторые виджеты в административной части только отвлекают от работы и занимают место на экране, то их можно отключить. Для этого добавьте в файл functions.php:
function clear_dash(){ $side = &$GLOBALS['wp_meta_boxes']['dashboard']['side']['core']; $normal = &$GLOBALS['wp_meta_boxes']['dashboard']['normal']['core']; unset($side['dashboard_quick_press']); //Быстрая публикация unset($side['dashboard_recent_drafts']); //Последние черновики unset($side['dashboard_primary']); //Блог WordPress unset($side['dashboard_secondary']); //Другие новости WordPress unset($normal['dashboard_incoming_links']); //Входящие ссылки unset($normal['dashboard_right_now']); //Прямо сейчас unset($normal['dashboard_recent_comments']); //Последние комментарии unset($normal['dashboard_plugins']); //Последние плагины } add_action('wp_dashboard_setup', 'clear_dash' );
Скрытие виджета произвольных полей
Иногда нужно не давать авторам возможность создавать и изменять произвольные поля при редактировании записей. Чтобы запретить использование произвольных полей, можно скрыть их виджет из редактора. Для этого нужно добавить в файл functions.php:
function customize_meta_boxes(){ global $current_user; get_currentuserinfo(); if ($current_user->user_level < 6) remove_meta_box('postcustom', 'post', 'normal'); } add_action('admin_init','customize_meta_boxes');
Теперь блок с произвольными полями будет доступен только пользователям с уровнем 6, то есть администраторам. Подробнее об уровнях пользователей и ролях: Роли и уровни пользователей в WordPress.
Так же для настроек видимости пользователями с разными правами тех или иных виджетов, разделов, ссылок внутри административной части блога можно воспользоваться плагином Adminimize.
[info txt=”Читайте так же Индивидуальные настройки административной части WordPress (часть 1).”]
Спасибо. Отличная статья.
Испробую сегодня на практике