Настройка админки WordPress для клиента

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

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

Упрощаем админ панель WordPress

1. Удаляем ненужные пункты меню

WordPress для клиента1

Ограничение доступа пользователям к определенному функционалу сайта – необходимая мера. Благодаря этому можно, к примеру, предотвратить случайное удаление или перемещение тем. Для удаление пунктов меню необходимо найти в папке с темой файл functions.php и добавить в него несколько строк кода:

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

[/php]

 

2. Полное удаление административного меню

Многих интересует вопрос – как полностью удалить административное меню. Сделать это довольно просто. Необходимо внести небольшие правки в файл functions.php:

[php]
add_action(‘admin_head’, ‘kill_adminmenu’);
function kill_adminmenu(){
$GLOBALS[‘menu’] = array();
echo "
<style type=’text/css’>#adminmenuwrap, #adminmenuback{display:none!important;} #wpcontent{margin-left:10px!important;}</style>

";
}
[/php]

3. Помещаем на страницу входа свой логотип

WordPress для клиента2

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

[php]
function my_custom_login_logo(){
echo ‘
<style type="text/css">
h1 a { background-image:url(‘.get_bloginfo(‘template_directory’).’/images/custom-login-logo.gif) !important; }
</style>

‘;
}
add_action(‘login_head’, ‘my_custom_login_logo’);
[/php]

Файл custom-login-logo.gif должен быть расположен в папке images (находится в папке темы).

4. Изменяем внутренний логотип админки

После добавления логотипа на страницу входа будет уместным изменить лого и в самой административной панели. Работаем с тем же файлом functions.php:

[php]
function my_custom_logo(){
echo ‘
<style type="text/css">
#header-logo { background-image: url(‘.get_bloginfo(‘template_directory’).’/images/custom-logo.gif) !important; }
</style>

‘;
}
add_action(‘admin_head’, ‘my_custom_logo’);
[/php]

Как и в предыдущем шаге, файл custom-logo.gif размещаем в папке images темы.

5. Отключение оповещений об обновлениях

Клиентам нет нужды получать информацию об обновлениях движка. Для отключения оповещений вставляем в файл functions.php следующий код:

[php]
if( !current_user_can( ‘edit_users’ ) ){
add_action( ‘init’, create_function( ‘$a’, "remove_action( ‘init’, ‘wp_version_check’ );" ), 2 );
add_filter( ‘pre_option_update_core’, create_function( ‘$a’, "return null;" ) );
// для 3.0+
add_filter( ‘pre_site_transient_update_core’, create_function( ‘$a’, "return null;" ) );
}
[/php]

6. Удаляем лишние виджеты в консоли

Панель управления WordPress, начиная с версии 2.7, включает в себя множество полезного функционала. Но клиенты не нуждаются в большей части виджетов, поэтому стоит их отключить. Вносим коррективы в файл functions.php:

[php]
/* Удаление виджетов из Консоли WordPress */
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’ );
[/php]

7. Добавляем собственные виджеты в админ-панель

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

[php]
function example_dashboard_widget_function(){
// Показать то, что вы хотите показать
echo "Привет, мир. Я — великий виджет админки, созданный великими программистами";
}
// Создаем функцию, используя хук действия
function example_add_dashboard_widgets() {
wp_add_dashboard_widget(‘example_dashboard_widget’, ‘Пример виджета админки’, ‘example_dashboard_widget_function’);
}
// Хук в ‘wp_dashboard_setup’, чтобы зарегистрировать нашу функцию среди других
add_action(‘wp_dashboard_setup’, ‘example_add_dashboard_widgets’ );
[/php]

8. Меняем цвет шапки

Для изменения цвета шапки административной панели на более подходящий ищем в CSS файле нашего стиля соответствующий фрагмент кода и корректируем его:

[php]
add_action(‘admin_head’, ‘custom_colors’);
function custom_colors() {
echo ‘
<style type="text/css">
#wphead{background:#069}
</style>

‘;
}
[/php]

9. Добавляем справочные сообщения

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

[php]
function my_admin_help($text, $screen) {
// Проверим, только ли для страницы настроек это применимо
if (strcmp($screen, MY_PAGEHOOK) == 0 ) {
$text = ‘Вот некоторая полезная информация, которая поможет вам разобраться с плагином…’;
return $text;
}
// Пусть по умолчанию штуки с помощью будут и на других страницах панели управления
return $text;
}
add_action( ‘contextual_help’, ‘my_admin_help’ );
[/php]

10. Просмотр ошибок сервера из панели администратора

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

[php]
/* Логи ошибок в виджете админ-панели, в консоли
——————————————————————— */
function slt_PHPErrorsWidget() {
$logfile = $_SERVER[‘DOCUMENT_ROOT’] . ‘/../error_log’; // Полный пусть до лог файла
$displayErrorsLimit = 100; // Максимальное количество ошибок, показываемых в виджете
$errorLengthLimit = 300; // Максимальное число символов для описания каждой ошибки
$fileCleared = false;
$userCanClearLog = current_user_can( ‘manage_options’ );

// Очистить файл?
if( $userCanClearLog && isset( $_GET["slt-php-errors"] ) && $_GET["slt-php-errors"]=="clear" ){
$handle = fopen( $logfile, "w" );
fclose( $handle );
$fileCleared = true;
}
// Читаем файл
if( file_exists( $logfile ) ){
$errors = file( $logfile );
$errors = array_reverse( $errors );
if ( $fileCleared ) echo ‘

<em>Файл очищен.</em>

‘;
if ( $errors ) {
echo ‘

Ошибок: ‘. count( $errors ) . ‘.’;
if ( $userCanClearLog )
echo ‘ [ <b><a href="’. admin_url() .’?slt-php-errors=clear" onclick="return confirm(\’Вы уверенны?\’);">Очистить файл логов</a></b> ]’;
echo ‘

‘;
echo ‘
<div id="slt-php-errors" style="max-height:500px; overflow:auto; padding:5px; background-color:#FAFAFA;">’;
echo ‘
<ol style="padding:0; margin:0;">’;
$i = 0;
foreach( $errors as $error ){
echo ‘
<li style="padding:2px 4px 6px; border-bottom:1px solid #ececec;">’;
$errorOutput = preg_replace( ‘/\[([^\]]+)\]/’, ‘<b>[$1]</b>’, $error, 1 );
if( strlen( $errorOutput ) > $errorLengthLimit ){
echo substr( $errorOutput, 0, $errorLengthLimit ).’ […]’;
}
else
echo $errorOutput;
echo ‘</li>

‘;
$i++;
if( $i > $displayErrorsLimit ){
echo ‘

<em>Набралось больше чем ‘. $displayErrorsLimit .’ ошибок в файле…</em>

‘;
break;
}
}
echo ‘</ol>
</div>

‘;
}
else
echo ‘

Ошибок нет!

‘;
}
else
echo ‘

<em>Произошла ошибка чтения лог файла.</em>

‘;
}
// Добавляем виджет
function slt_dashboardWidgets(){
wp_add_dashboard_widget( ‘slt-php-errors’, ‘PHP errors’, ‘slt_PHPErrorsWidget’ );
}
add_action( ‘wp_dashboard_setup’, ‘slt_dashboardWidgets’ );
[/php]

11. Упрощение ссылки для входа на сайт

По умолчанию страница входа на сайт расположена по ссылке http://site.ru/wp-login.php. Чтобы сделать ее более удобной, необходимо добавить в файл .htaccess строку:

[php]
RewriteRule ^login$ http://site.ru/wp-login.php [NC,L]
[/php]

12. Умное отображение PHP-ошибок

Для отключения показа PHP-ошибок всем пользователям (кроме администратора) добавляем в файлfunctions.php строки:

[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);
}
[/php]

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

Комментарии к “Настройка админки WordPress для клиента”
  1. DolininS 06.10.2016
  2. NetStar 06.10.2016
  3. Mvuser 06.10.2016
  4. Guzelka 06.10.2016
  5. Garri 06.10.2016
  6. Celana 06.10.2016

Напишите ответ

Screenshot.png
Общаясь и проявляя активность в Клубе по WordPress

можно зарабатывать монеты и получить доступ в закрытый раздел