Упрощаем админку WordPress для клиентов

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

Шаг 1: Настраиваем ваш плагин

Как обычно, для начала необходимо настроить плагин, прежде чем добавлять в него функционал. Создайте директорию в папке /wp-content/plugins/ с именем devise-simple-admin. Далее, внутри этой директории создайте основной файл PHP для вашего плагина. Для стандартизации давайте назовем его devise-simple-admin.php.

Внутри этого файла мы поместим информацию заголовка плагина:

<?php
/*
Plugin Name: Devise Simple Admin
Plugin URI: http://web-devise.com
Description: Hides parts of the WordPress admin to keep it simple.
Version: 0.1
Author: Japh
Author URI: http://web-devise.com
License: GPL2
*/
?>

Мы будем писать этот плагин, используя объектно-ориентированное программирование, поэтому зададим наш класс под заголовком плагина:

<?php
class devise_Simple_Admin {

    function __construct() {
        // Здесь мы будем добавлять хуки
    }

}

$devise_simple_admin = new devise_Simple_Admin();
?>

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

Шаг 2: Скрываем ненужные меню

Давайте предположим, что сайт вашего клиента не использует меню «Ссылки», а также клиенту не нужно видеть ничего в «Инструментах» и «Настройках». Давайте отключим их.

<?php
class devise_Simple_Admin {

    function __construct() {
        // перехватываем действие 'admin_menu' для нашей функции для того, чтобы убрать элементы меню
        add_action( 'admin_menu', array( $this, 'hide_menus' ) );
    }

    // Эта функция убирает каждый элемент меню с помощью Page Hook Suffix ( http://codex.wordpress.org/Administration_Menus#Page_Hook_Suffix )
    function hide_menus() {
        // Страница ССЫЛКИ
        remove_menu_page( 'link-manager.php' );
        // Страница ИНСТРУМЕНТЫ
        remove_menu_page( 'tools.php' );
        // Страница НАСТРОЙКИ
        remove_menu_page( 'options-general.php' );
    }

}

$devise_simple_admin = new devise_Simple_Admin();
?>

Шаг 3: Вычищаем виджеты консоли

Наверняка, многие не пользуются как самой консолью, так и некоторыми виджетами в ней, такими как: входящие ссылки, плагины, Блог WordPress, и Другие новости ВП.

Итак, виджеты консоли — это метабоксы, поэтому мы можем использовать следующий код для того, чтобы избавиться от них:

<?php
class devise_Simple_Admin {

    function __construct() {
        // перехватываем действие 'admin_menu' для нашей функции, чтобы убрать элементы меню
        add_action( 'admin_menu', array( $this, 'remove_menus' ) );
        // перехватываем действие 'admin_menu' для функции удаления виджетов консоли
        add_action( 'admin_menu', array( $this, 'remove_dashboard_widgets' ) );
    }

    // Эта функция убирает каждый элемент меню с помощью Page Hook Suffix ( http://codex.wordpress.org/Administration_Menus#Page_Hook_Suffix )
    function hide_menus() {
        // Страница ССЫЛКИ
        remove_menu_page( 'link-manager.php' );
        // Страница ИНСТРУМЕНТЫ
        remove_menu_page( 'tools.php' );
        // Страница НАСТРОЙКИ
        remove_menu_page( 'options-general.php' );
    }

    // Эта функция убирает виджеты консоли
    function remove_dashboard_widgets() {
        // Убираем каждый виджет консоли для "входящие ссылки, плагины, Блог WordPress, и Другие новости ВП"
        remove_meta_box('dashboard_incoming_links', 'dashboard', 'core');
        remove_meta_box('dashboard_plugins', 'dashboard', 'core');
        remove_meta_box('dashboard_primary', 'dashboard', 'core');
        remove_meta_box('dashboard_secondary', 'dashboard', 'core');
    }

}

$devise_simple_admin = new devise_Simple_Admin();
?>

Шаг 4: Упрощаем страницу записей, убирая ненужные колонки

Последний шаг для очищения админки — страница списка записей (для страниц и записей). Если ващ клиент — всего один человек, и сам пишет записи для себя, то зачем ему видеть колонку автора? Давайте сэкономим пространство в админке:

<?php
class devise_Simple_Admin {


    function __construct() {
        // перехватываем действие 'admin_menu' для нашей функции, чтобы убрать элементы меню
        add_action( 'admin_menu', array( $this, 'remove_menus' ) );
        // перехватываем действие 'admin_menu' для функции удаления виджетов консоли
        add_action( 'admin_menu', array( $this, 'remove_dashboard_widgets' ) );
        // перехватываем фильтры для записей, чтобы убрать колонки
        add_filter( 'manage_posts_columns', array( $this, 'remove_columns' ) );
        add_filter( 'manage_pages_columns', array( $this, 'remove_columns' ) );
    }

    // Эта функция убирает каждый элемент меню с помощью Page Hook Suffix ( http://codex.wordpress.org/Administration_Menus#Page_Hook_Suffix )
    function hide_menus() {
        // Страница ССЫЛКИ
        remove_menu_page( 'link-manager.php' );
        // Страница ИНСТРУМЕНТЫ
        remove_menu_page( 'tools.php' );
        // Страница НАСТРОЙКИ
        remove_menu_page( 'options-general.php' );
    }

    // Эта функция убирает виджеты консоли
    function remove_dashboard_widgets() {
        // Убираем каждый виджет консоли для "входящие ссылки, плагины, Блог WordPress, и Другие новости ВП"
        remove_meta_box('dashboard_incoming_links', 'dashboard', 'core');
        remove_meta_box('dashboard_plugins', 'dashboard', 'core');
        remove_meta_box('dashboard_primary', 'dashboard', 'core');
        remove_meta_box('dashboard_secondary', 'dashboard', 'core');
    }

    // Эта функция убирает колонки на странице записей/страниц
    function remove_columns( $defaults ) {
        unset( $defaults['author'] );
        return $defaults;
    }

}

$devise_simple_admin = new devise_Simple_Admin();
?>

Заключение

Эти небольшие изменения помогут вам сделать админку WordPress удобной для вашего клиента. Конечно же, сделать можно намного больше, и эти потребности могут отличаться в зависимости от нужд клиента. Некоторые описанные вещи можно реализовать плагином Minimal Admin.

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

По всем вопросам и отзывам просьба писать в комментарии ниже.

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

VN:F [1.9.22_1171]
Rating: 3.7/5 (3 votes cast)

Об авторе ADv

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