В этой статье я покажу как скрыть пункт меню от незарегистрированного пользователя без использования плагина. Данное решение очень легкое и не требует использования сторонних плагинов, что положительно сказывается на производительности.
В данном примере необходимо скрыть два пункта меню «Управление вакансиями» и «Добавить вакансию» от незарегистрированных пользователей.
Вот что получилось в итоге:
Создание нескольких меню в WordPress
1. Создадим два меню. Одно для работодателя, а второе для незарегистрированных пользователей. Для этого переходим в раздел Внешний вид — Меню и создадим два меню с названиями logged-in-menu (для зарегистрированных пользователей) и logged-out-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' );
Нажимаем Обновить файл и при необходимости чистим кэш. Теперь у зарегистрированного пользователя и незарегистрированного выводятся разные меню. Не забываем добавлять при появлении новых общих пунктов в оба меню.
Надеюсь, что я вам помог. Если у Вас появились вопросы или в процессе возникнут трудности — смело пишите мне (см. раздел Контаткы). Подписывайтесь на мои соц. сети и следите за обновлениями.