В первой части этой серии мы узнали, как легко упростить интерфейс WordPress для клиентов.
В этой статье я опишу технику сокрытия ненужных меню. Зачем нам это делать? Чем меньше вариантов у вашего клиента, тем меньше вам придется объяснять, тем меньше им нужно будет помнить и тем меньше вероятность того, что они что-то сделают, что … неожиданно .
Прежде чем добавлять какой-либо код, я бы рекомендовал вам проверить свои роли в WordPress . Я подозреваю, что большинство разработчиков добавляют своего клиента в качестве редактора (публикуют и управляют всеми публикациями) или автора (публикуют и управляют своими собственными публикациями). Избегайте добавления кого-либо в качестве администратора, если они не запрашивают этот уровень контроля.
Я бы также предложил вам войти в систему под этим пользователем и удалить все ненужные элементы, используя раскрывающийся список параметров экрана . Вашему клиенту может не понадобиться использовать такие функции, как теги, слагы или настраиваемые поля.
Теперь запишите меню, которые не нужны клиенту. Такие параметры, как Профиль, Инструменты и Настройки, являются очевидными кандидатами. Возможно, сайт не использует ссылки или комментарии? Или ваш клиент должен иметь возможность управлять сообщениями, но не статическими страницами?
Хорошо, давайте добавим небольшой код в файл function.php вашей темы. Не уверен, что это такое? Посмотрите на часть 1 . Готов? Вот код:
// remove unnecessary menus
function remove_admin_menus () {
global $menu;
// all users
$restrict = explode(',', 'Links,Comments');
// non-administrator users
$restrict_user = explode(',', 'Media,Profile,Appearance,Plugins,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 (строка 5) содержит разделенный запятыми список пунктов меню, которые не будут показаны ни одному пользователю, включая администраторов. В приведенном выше примере мы скрываем ссылки и комментарии, но ваши требования могут отличаться.
- $ restrict_user (строка 8) содержит разделенный запятыми список пунктов меню, которые не будут показаны не администраторам. Приведенный выше пример отключает все ожидания для панели инструментов, страниц и сообщений. (Обратите внимание, что пользователи без прав администратора обычно не видят Внешний вид и Плагины, но другие плагины могут изменить эту функциональность.)
Я надеюсь, что вы и ваши клиенты найдете это полезным. У вас есть дополнительные советы по упрощению WordPress?