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

| Скачать исходники |

Шаг 1. Делаем все через свой плагин

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

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

<?php
/*
Plugin Name: Wptuts+ Simple Admin
Plugin URI: http://wp.tutsplus.com/articles/tips-articles/quick-tip-simplifying-the-wordpress-admin-for-your-clients
Description: Hides parts of the WordPress admin to keep it simple.
Version: 0.1
Author: Japh
Author URI: http://wp.tutsplus.com/author/Japh
License: GPL2
*/
?>

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

<?php
class Wptuts_Simple_Admin {
    function __construct() {
        // We'll add hooks here
    }
}
$wptuts_simple_admin = new Wptuts_Simple_Admin();
?>

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

Шаг 2. Скрываем пункты меню, которые мы не используем

Предположим, что вам не нужно использовать меню "Ссылки", а также меню "Инструменты" и "Настройки" (потому что этим будет заниматься администратор или студия, поддерживающая сайт). Так что давайте просто отключим отображение этих разделов для клиента (добавленный новый код выделен другим цветом):

<?php
class Wptuts_Simple_Admin {
    function __construct() {
        // Hook onto the action 'admin_menu' for our function to remove menu items
        add_action( 'admin_menu', array( $this, 'hide_menus' ) );
    }
    // This function removes each menu item using the Page Hook Suffix ( http://codex.wordpress.org/Administration_Menus#Page_Hook_Suffix )
    function hide_menus() {
        // Links page
        remove_menu_page( 'link-manager.php' );
        // Tools page
        remove_menu_page( 'tools.php' );
        // Settings page
        remove_menu_page( 'options-general.php' );
    }
}
$wptuts_simple_admin = new Wptuts_Simple_Admin();
?>

Шаг 3. Убираем лишние виджеты

Не знаю как вы, а я считаю, что в Консоли есть несколько установленных виджетов, которые не нужны ни мне, ни моим заказчикам. К их числу относятся виджеты "Входящие ссылки", "Плагины", "WordPress Blog" и "Other WordPress News". Некоторые возразят, что входящие ссылки могут и пригодиться, но я предпочитаю их скрыть и сэкономить место на экране. Эти виджеты представляют собой meta-боксы, от которых можно избавиться, просто добавив следующий новый код (тоже выделен цветом):

<?php
class Wptuts_Simple_Admin {
    function __construct() {
        // Hook onto the action 'admin_menu' for our function to remove menu items
        add_action( 'admin_menu', array( $this, 'remove_menus' ) );
        // Hook onto the action 'admin_menu' for our function to remove dashboard widgets
        add_action( 'admin_menu', array( $this, 'remove_dashboard_widgets' ) );
    }
    // This function removes each menu item using the Page Hook Suffix ( http://codex.wordpress.org/Administration_Menus#Page_Hook_Suffix )
    function remove_menus() {
        // Links page
        remove_menu_page( 'link-manager.php' );
        // Tools page
        remove_menu_page( 'tools.php' );
        // Settings page
        remove_menu_page( 'options-general.php' );
    }
    // This function removes dashboard widgets
    function remove_dashboard_widgets() {
        // Remove each dashboard widget metabox for Incoming Links, Plugins, the WordPress Blog and Other WordPress News
        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');
    }
}
$wptuts_simple_admin = new Wptuts_Simple_Admin();
?>

Шаг 4. Убираем лишние колонки на странице Всех записей

И в завершение упростим список на странице отображаемых в колонках данных о постах. Если у вас заказчик — единственный автор блога, то какой смысл в колонке "Автор"? Чтобы не тратить место попусту, отключим ее:

<?php
class Wptuts_Simple_Admin {
    function __construct() {
        // Hook onto the action 'admin_menu' for our function to remove menu items
        add_action( 'admin_menu', array( $this, 'remove_menus' ) );
        // Hook onto the action 'admin_menu' for our function to remove dashboard widgets
        add_action( 'admin_menu', array( $this, 'remove_dashboard_widgets' ) );
        // Hook onto the post type-specific filters to remove columns
        add_filter( 'manage_posts_columns', array( $this, 'remove_columns' ) );
        add_filter( 'manage_pages_columns', array( $this, 'remove_columns' ) );
    }
    // This function removes each menu item using the Page Hook Suffix ( http://codex.wordpress.org/Administration_Menus#Page_Hook_Suffix )
    function remove_menus() {
        // Links page
        remove_menu_page( 'link-manager.php' );
        // Tools page
        remove_menu_page( 'tools.php' );
        // Settings page
        remove_menu_page( 'options-general.php' );
    }
    // This function removes dashboard widgets
    function remove_dashboard_widgets() {
        // Remove each dashboard widget metabox for Incoming Links, Plugins, the WordPress Blog and Other WordPress News
        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');
    }
    // This function removes post / page list columns
    function remove_columns( $defaults ) {
        unset( $defaults['author'] );
        return $defaults;
    }
}
$wptuts_simple_admin = new Wptuts_Simple_Admin();
?>

Заключение

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

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

Источник: WP.tutsplus.com

Вам понравился материал?

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

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

4 комментария

сначала новые
по рейтингу сначала новые по хронологии
Иван Шевчун

Прошу помощи, сам не разобрался вот как прописать это remove_menu_page( 'options-general.php' ); я понял, а вот как убрать например рейтинг на скрине я показал, не пойму как его прописать, там все понятно вписал options-general.php и все. Прошу помощи у спецов...

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

чего то сразу и не разберёшься))

ИМО, лучше это делать через functions.php