Когда вы создаете сайт для клиента, иногда некоторые части админ-панели в 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.
Если вы хотите добиться полного контроля, то можно настроить отображение тех или иных плагинов и той или иной структуры панели администратора в зависимости от того, кто из пользователей авторизован в данный момент на сайте.
Комментарии к записи: 4
ИМО, лучше это делать через functions.php
чего то сразу и не разберёшься))
проще ли добавлять плагин, вместо того чтобы часть готового кода изменить. Наверняка клиенту и не нужен будет скрытый функционал и плагин какой-то
Прошу помощи, сам не разобрался вот как прописать это remove_menu_page( ‘options-general.php’ ); я понял, а вот как убрать например рейтинг на скрине я показал, не пойму как его прописать, там все понятно вписал options-general.php и все. Прошу помощи у спецов…