Статьи

Как сделать WordPress проще для клиентов, часть 2: скрытие меню

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

В этой статье я опишу технику сокрытия ненужных меню. Зачем нам это делать? Чем меньше вариантов у вашего клиента, тем меньше вам придется объяснять, тем меньше им нужно будет помнить и тем меньше вероятность того, что они что-то сделают, что … неожиданно .

Прежде чем добавлять какой-либо код, я бы рекомендовал вам проверить свои роли в 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?