Коли ви створюєте сайт для клієнта, іноді деякі частини адмін-панелі 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 блог"І"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 і все. Прошу допомоги у спеціалістів.