Эта статья является частью серии, созданной в сотрудничестве с SiteGround . Спасибо за поддержку партнеров, которые делают возможным использование SitePoint.
WordPress — одна из самых простых систем управления контентом. Несмотря на чистый пользовательский интерфейс, WordPress может быть пугающим для тех, кто использует его нечасто или имеет базовые навыки в области ИТ. Это также предлагает значительную власть; легко установить вредоносный плагин или стереть базу данных, если вы не будете осторожны.
К счастью, WordPress можно настроить и настроить, чтобы избавить пользователей от самих себя! Это включает в себя человека в каждой организации, который сильно переоценивает свое техническое мастерство …
1. Предоставьте соответствующие роли пользователя
WordPress предлагает широкий спектр ролей и возможностей . В большинстве случаев пользователи должны быть:
- редактор : тот, кто может публиковать и управлять своими и чужими постами.
- Автор : тот, кто может публиковать и управлять своими сообщениями.
- Автор : тот, кто может писать и управлять своими сообщениями, но не может их публиковать.
Ни одна из этих ролей не может устанавливать подключаемые модули, изменять темы, утверждать обновления, редактировать файлы или выполнять другие опасные задачи, доступные администраторам . Конечно, некоторые пользователи утверждают, что им нужны полные права — это хорошо, если они готовы пойти на риск и заплатить за потерю всего!
2. Создайте шорткоды для расширенной функциональности
Пользователям часто требуются расширенные функциональные возможности, такие как виджеты Twitter, трекеры цен на акции, партнерские ссылки и т. Д. Вместо того, чтобы позволять им добавлять произвольный сторонний код, разрешите им вызывать ваш код с помощью короткого кода, определенного в плагине или в файле functions.php темы. :
// include a specific PHP file function customIncludeFile($params = array()) { extract(shortcode_atts(array( 'file' => 'contact-form' ), $params)); ob_start(); include(get_theme_root() . '/' . get_template() . "/$file.php"); return ob_get_clean(); } add_shortcode('include', 'customIncludeFile');
Этот шорткод позволяет пользователям вводить [include myfile]
в редакторе, чтобы включить myfile.php из папки шаблонов.
3. Удалите уведомления об обновлениях WordPress
Уведомление об обновлении WordPress может быть полезно для вас, но может беспокоить ваших пользователей. Отключите его в плагине или в файле functions.php темы:
// remove update notifications <?php function no_update_notification() { if (!current_user_can('activate_plugins')) remove_action('admin_notices', 'update_nag', 3); } add_action('admin_notices', 'no_update_notification', 1);
4. Удалите ненужные меню
Немногие сайты используют каждую функцию WordPress. Например, ваша установка может не нуждаться в комментариях. Ненужные элементы можно удалить с помощью следующего кода в плагине или functions.php :
// remove unnecessary menus function remove_admin_menus () { global $menu; // all users $restrict = explode(',', 'Links,Comments'); // non-administrator users $restrict_user = explode(',', 'Media,Profile,Users,Tools,Settings'); // WP localization $f = create_function('$v,$i', 'return __($v);'); array_walk($restrict, $f); if (!current_user_can('activate_plugins')) { array_walk($restrict_user, $f); $restrict = array_merge($restrict, $restrict_user); } // remove menus end($menu); while (prev($menu)) { $k = key($menu); $v = explode(' ', $menu[$k][0]); if(in_array(is_null($v[0]) ? '' : $v[0] , $restrict)) unset($menu[$k]); } } add_action('admin_menu', 'remove_admin_menus');
Установите следующие переменные соответственно:
- $ restrict — разделенный запятыми список пунктов меню, которые не будут показаны ни одному пользователю, включая администраторов. В приведенном выше примере мы скрываем ссылки и комментарии.
- $ restrict_user — разделенный запятыми список пунктов меню, которые не будут показаны не администраторам. В приведенном выше примере отключено все, кроме панели инструментов, страниц и сообщений. Внешний вид и плагины также будут скрыты по умолчанию для не администраторов.
5. Удалите ненужные страницы и разместите мета-боксы
Мало кто — даже администраторы — требуют все опции, доступные для страниц, сообщений и пользовательских сообщений. Их можно скрыть с помощью меню « Параметры экрана» в правом верхнем углу экрана редактирования, но пользователи по-прежнему могут повторно включить параметры. Вы можете удалить поля навсегда, добавив следующий код в плагин или functions.php :
// remove unnecessary page/post meta boxes function remove_meta_boxes() { // posts remove_meta_box('postcustom','post','normal'); remove_meta_box('trackbacksdiv','post','normal'); remove_meta_box('commentstatusdiv','post','normal'); remove_meta_box('commentsdiv','post','normal'); remove_meta_box('categorydiv','post','normal'); remove_meta_box('tagsdiv-post_tag','post','normal'); remove_meta_box('slugdiv','post','normal'); remove_meta_box('authordiv','post','normal'); // pages remove_meta_box('postcustom','page','normal'); remove_meta_box('commentstatusdiv','page','normal'); remove_meta_box('trackbacksdiv','page','normal'); remove_meta_box('commentsdiv','page','normal'); remove_meta_box('slugdiv','page','normal'); remove_meta_box('authordiv','page','normal'); } add_action('admin_init','remove_meta_boxes');
При необходимости добавьте или удалите строки remove_meta_box
. Первый аргумент — это идентификатор, присвоенный элементу div
метабокса — найдите его в источнике HTML или с помощью инструментов разработчика.
6. Удалите ненужные виджеты панели инструментов
Аналогичным образом, панель управления может предлагать множество вариантов для некоторых пользователей. Удалите виджеты с помощью следующего плагина или кода functions.php :
// remove unnecessary dashboard widgets function remove_dashboard_widgets(){ global $wp_meta_boxes; // only remove "Right Now" for non-administrators if (!current_user_can('activate_plugins')) { unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); } // remove widgets for everyone unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
не// remove unnecessary dashboard widgets function remove_dashboard_widgets(){ global $wp_meta_boxes; // only remove "Right Now" for non-administrators if (!current_user_can('activate_plugins')) { unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); } // remove widgets for everyone unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
не// remove unnecessary dashboard widgets function remove_dashboard_widgets(){ global $wp_meta_boxes; // only remove "Right Now" for non-administrators if (!current_user_can('activate_plugins')) { unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); } // remove widgets for everyone unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
не// remove unnecessary dashboard widgets function remove_dashboard_widgets(){ global $wp_meta_boxes; // only remove "Right Now" for non-administrators if (!current_user_can('activate_plugins')) { unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); } // remove widgets for everyone unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
не// remove unnecessary dashboard widgets function remove_dashboard_widgets(){ global $wp_meta_boxes; // only remove "Right Now" for non-administrators if (!current_user_can('activate_plugins')) { unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); } // remove widgets for everyone unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
не// remove unnecessary dashboard widgets function remove_dashboard_widgets(){ global $wp_meta_boxes; // only remove "Right Now" for non-administrators if (!current_user_can('activate_plugins')) { unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); } // remove widgets for everyone unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
не// remove unnecessary dashboard widgets function remove_dashboard_widgets(){ global $wp_meta_boxes; // only remove "Right Now" for non-administrators if (!current_user_can('activate_plugins')) { unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); } // remove widgets for everyone unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
Это можно настроить по мере необходимости. Идентификатор виджета панели мониторинга присваивается его элементу div
— найдите его в источнике HTML или с помощью Инструментов разработчика.
7. Снимите панель администрирования.
WordPress показывает темно-серую панель администрирования в верхней части живого сайта при входе в систему. Возможно, вы не найдете ее полезной. Или, возможно, ваши пользователи думают, что все посетители могут видеть бар? Вы можете удалить его с помощью строки PHP в вашем плагине или коде functions.php :
// remove admin bar add_filter('show_admin_bar', '__return_false');
У вас есть другие рекомендации по упрощению WordPress?