Статьи

Совет: настройка и упрощение администрирования WordPress для ваших клиентов

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


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

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

01
02
03
04
05
06
07
08
09
10
11
<?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
*/
?>

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

01
02
03
04
05
06
07
08
09
10
11
<?php
class Wptuts_Simple_Admin {
 
    function __construct() {
        // We’ll add hooks here
    }
 
}
 
$wptuts_simple_admin = new Wptuts_Simple_Admin();
?>

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


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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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();
?>

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

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?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();
?>

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?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 от Aaron Rutley.

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

Как вы хотите настроить WordPress для своих клиентов? Дайте нам знать в комментариях ниже.