Пользовательская настройка панели администрирования WordPress: панель управления сайтом

Это вторая из шести частей цикла "Пользовательская настройка панели администрирования WordPress":

1. Пользовательская настройка панели администрирования WordPress: Форма входа;

2. Пользовательская настройка панели администрирования WordPress: панель управления сайтом;

3. Настраиваем панель администрирования WordPress: пользовательское меню администрирования;

4. Настройка административной панели WordPress: текстовая справка;

5. Настройка панели администрирования WordPress – списки объектов;

6. Настраиваем панель администрирования WordPress – изменяем стиль элементов.

Скачать материалы по данной статье

В первой части, я показал, как настраивать форму входа в WordPresss, добавлять собственный логотип и некоторые другие элементы (виджеты).

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

Вот пункты, которые я хочу осветить:

  1. Удаление некоторых виджетов, которые могут смутить пользователя;
  2. Перемещение виджетов в различные позиции экрана;
  3. Добавление собственных виджетов, настроенных под пользователя.

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

Для успешного завершения работы по данной статье, вам понадобится:

  • Установленный WordPress;
  • Доступ к папке с вашими плагинами;
  • Текстовый редактор.

Создание плагина

В начало моего плагина я вставил следующие строки:

/*
Plugin Name: My Plugin специально для статьи «Пользовательская настройка панели администрирования WordPress– панель управления сайтом»
Plugin URI: <a href="http://rachelmccollin.co.uk/" target="_blank">http://rachelmccollin.co.uk</a>
Description: Этот плагин создан для демонстрации сути данной статьи. Он настраивает панель управления в WordPress.
Version: 1.0
Author: Rachel McCollin
Author URI: <a href="http://www.author.com/" target="_blank">http://author.com</a>
License: GPLv2
*/

1. Удаление элементов интерфейса

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

Начнем с того, что посмотрим, какие виджеты на панели управления доступны пользователям с правами доступа редактор (editor):

Удаление элементов интерфейса

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

Поэтому, я собираюсь удалить следующие элементы:

  • Недавние комментарии;
  • Входящие ссылки;
  • Панель QuickPress;
  • Блог WordPress;
  • Новости WordPress.

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

// удаление нежелательных виджетов из панели управления для пользователей, не являющихся администраторами
function wptutsplus_remove_dashboard_widgets() {
    // получаем данные о текущем пользователе
    $user = wp_get_current_user();
    // проверка прав пользователя и удаление соответствующих элементов
    if ( ! $user->has_cap( 'manage_options' ) ) { 
        remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal' );
        remove_meta_box( 'dashboard_incoming_links', 'dashboard', 'normal' );
        remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' );
        remove_meta_box( 'dashboard_primary', 'dashboard', 'side' );
        remove_meta_box( 'dashboard_secondary', 'dashboard', 'side' );
    }
}
// вешаем функцию 'wptutsplus_remove_dashboard_widgets на вызов wp_dashboard_setup

add_action( 'wp_dashboard_setup', 'wptutsplus_remove_dashboard_widgets' ); // устанавливаем действие

С помощью условной проверки, выясняем, какими правами обладает пользователь. Для этого мы проверяем имеет ли данный пользователь право изменять опции (manage_options). Если нет, то он не является администратором, и мы скрываем для него перечисленные выше виджеты с помощью хука wp_dashboard_setup.

Теперь, панель управления выглядит менее загроможденной:

Удаление элементов интерфейса - 2

Может показаться, что мы убрали слишком многое. Не волнуйтесь, далее я покажу, как добавить новые элементы интерфейса.
Но сначала, переместим панель «Прямо сейчас» (Right Now), так как я хочу добавить другой виджет на ее место.

2. Перемещение элементов интерфейса

Перемещение виджетов на панели управления сайтом может помочь вам оптимизировать интерфейс и настроить его под определенные группы пользователей, исходя из их важности. Я перемещу панель «Прямо сейчас» вправо.

Для этого надо добавить в наш плагин следующий код:

// Перемещение виджета «Прямо сейчас» в правую часть панели управления
function wptutsplus_move_dashboard_widget() {
    $user = wp_get_current_user(); // получаем текущего пользователя
    if ( ! $user->has_cap( 'manage_options' ) ) {
        global $wp_meta_boxes;
        $widget = $wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now'];
        unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now'] );
        $wp_meta_boxes['dashboard']['side']['core']['dashboard_right_now'] = $widget;
    }
}
add_action( 'wp_dashboard_setup', 'wptutsplus_move_dashboard_widget' );

Этот код сдвигает виджет «Прямо сейчас» вправо от его стандартной позиции, как показано ниже:

Перемещение элементов интерфейса

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

3. Добавление новых элементов интерфейса

Добавление виджетов на панель управления состоит из двух шагов:

  • Применение функции wp_add_dashboard_widget() для определения параметров виджета – ID, заголовок и функция, которая будет определять содержимое этой панели. Вызов виджетов вешается на хук wp_dashboard_setup.
  • Написание функции, которая будет определять содержимое виджета.

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

Добавьте следующие строки в код своего плагина:

// добавление новых виджетов на панель управления
function wptutsplus_add_dashboard_widgets() {
    wp_add_dashboard_widget( 'wptutsplus_dashboard_welcome', 'Welcome', 'wptutsplus_add_welcome_widget' );
    wp_add_dashboard_widget( 'wptutsplus_dashboard_links', 'Useful Links', 'wptutsplus_add_links_widget' );
}
// определяем содержимое первого виджета
function wptutsplus_add_welcome_widget(){ ?>
    Данная система управления сайтом позволяет вам создавать и редактировать страницы и записи на вашем сайте.
    Ваш сайт состоит из нескольких типов контента, к которым вы можете получить доступ через меню в левой части:
    <ul>
<li><strong>Страницы</strong> - статические страницы, которые можно редактировать.</li>
<li><strong>Записи</strong> - новости или статьи на блоге - вы можете их добавлять и редактировать.</li>
<li><strong>Медиафайлы</strong> - изображения и документы, которые вы можете загружать через меню «Медиа» в левой части, или добавлять внутрь страницы или записи.</li>
</ul>
    Во всех меню редактирования содержатся инструкции, которые помогут вам добавить или изменить контент.

    Вот некоторые ссылки, которые могут помочь вам в управлении своим сайтом:
<ul>
        <li><a href="http://wordpress.org">The WordPress Codex</a></li>
        <li><a href="http://easywpguide.com">Easy WP Guide</a></li>
        <li><a href="http://www.wpbeginner.com">WP Beginner</a></li>
    </ul>
<?php }
add_action( 'wp_dashboard_setup', 'wptutsplus_add_dashboard_widgets' ); // вешаем хук

Применение функции wp_add_dashboard_widget() для определения параметров виджета – ID, заголовок и функция, которая будет определять содержимое этой панели. Вызов виджетов вешается на хук wp_dashboard_setup.

Написание функции, которая будет определять содержимое виджета.

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

Этот код добавит два новых виджета в левую часть панели управления. Ваша панель управления настроена!

Заключение

В этой статье мы научились делать три полезные вещи:

  • Удалять виджеты с панели управления;
  • Перемещать виджеты на панели управления из одной позиции в другую;
  • Добавлять новые виджеты на панель управления.

Какие виджеты добавлять, целиком зависит от вас. Вы можете, включить в собственный виджет ссылки на обучающие материалы в помощь начинающим пользователям, или добавить ссылку на свой собственный блог или сайт. Либо, к примеру, выводить на своей панели мысль дня – все, что пожелаете!

РедакцияПеревод статьи «Customizing the WordPress Admin – The Dashboard»