Как скрыть пункт меню от незарегистрированных пользователей WordPress

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

В данном примере необходимо скрыть два пункта меню “Управление вакансиями” и “Добавить вакансию” от незарегистрированных пользователей.

Вот что получилось в итоге:

Вот так будет выглядеть меню для работодателя:
Меню для зарегистрированных
Вот так будет выглядеть меню для обычных посетителей:
Меню для незарегистрированных

Создание нескольких меню в WordPress

1. Создадим два меню. Одно для работодателя, а второе для незарегистрированных пользователей. Для этого переходим в раздел Внешний вид — Меню и создадим два меню с названиями logged-in-menu (для зарегистрированных пользователей) и logged-out-menu (для незарегистрированных пользователей). Основным меню выбираем logged-out-menu.

logged-in-menu для работодателя:
logged-in-menu
logged-in-menu для обычных посетителей:
logged-out-menu

2. Переходим в раздел Внешний вид — Редактор тем. Выбираем в правой колонке файл ваших Функций темы functions.php. И вставляем в него следующий код:

				
					function new_wp_nav_menu_args( $args = '' ) {

if( is_user_logged_in() ) { 
	$args['menu'] = 'logged-in-menu';
} else { 
	$args['menu'] = 'logged-out-menu';
} 
	return $args;
}
add_filter( 'wp_nav_menu_args', 'new_wp_nav_menu_args' );
				
			

Нажимаем Обновить файл и при необходимости чистим кэш. Теперь у зарегистрированного пользователя и незарегистрированного выводятся разные меню. Не забываем добавлять при появлении новых общих пунктов в оба меню.

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