Skip to content

Всё для WordPress, веб-разработки — и не только

🔧 Настройка динамического меню WordPress для зарегистрированных пользователей

🔧 Настройка динамического меню WordPress для зарегистрированных пользователей

Пользователь зарегистрировался на вашем сайте, и вы хотите показать ему особое меню. Без плагина WordPress такой возможности «из коробки» не даёт: одно и то же меню видят и гости, и авторизованные пользователи, и администраторы. А это неудобно.

Гостю ни к чему ссылка «Мой профиль», а залогиненному пользователю незачем видеть кнопку «Войти». Членам закрытого раздела нужно своё меню, а подписчикам, другое. Решение существует и занимает ровно один бесплатный плагин.

Разбираемся, как за 10 минут настроить динамическое меню WordPress, которое само понимает, кто перед ним, и показывает каждому нужные пункты.

💡 Быстрый обзор:

  • Установите бесплатный плагин User Menus из каталога WordPress.org.
  • Настройте видимость пунктов: для всех посетителей, только для гостей или только для авторизованных пользователей вплоть до конкретной роли.
  • Добавьте в меню живое имя пользователя и аватар через плейсхолдеры вроде {first_name}.
  • Вставьте ссылки «Войти», «Регистрация» и «Выйти» с настраиваемым перенаправлением.

Что даёт динамическое меню на практике

Представьте: вы ведёте закрытый клуб с уроками. Гость видит меню «О проекте, Тарифы, Войти». После входа те же пункты сменяются на «Мои курсы, Прогресс, Профиль, Выйти». Никакой путаницы, каждый видит своё.

Тот же подход работает для интернет-магазинов (гостю, каталог и корзина, покупателю, история заказов), форумов, досок объявлений, корпоративных порталов. Везде, где пользователи входят в систему, контекстное меню улучшает навигацию и снижает процент отказов.

Стандартный WordPress умеет ровно одно меню на область темы. Чтобы разветвить логику «гость vs пользователь», нужен дополнительный инструмент. Вариантов три: писать код в functions.php (гибко, но нужен разработчик), использовать многофункциональный комбайн вроде MemberPress (тяжело, если нужны только меню) или взять лёгкий специализированный плагин. Третий путь и рассмотрим.

Бесплатный плагин User Menus: что умеет и чем хорош

Страница плагина User Menus в админке WordPress

User Menus, Nav Menu Visibility разработан командой Code Atlantic (ранее Jungle Plugins). Плагин бесплатный, живёт в официальном каталоге WordPress.org, насчитывает 80 000+ активных установок и держит оценку 5 из 5 звёзд на основе 1 275+ отзывов. Последнее обновление вышло в 2026 году, совместимость заявлена вплоть до WordPress 7.0.

Три главные возможности, ради которых плагин и ставят:

  • Управление видимостью. Каждому пункту меню назначается правило: видят все, только гости (logged out) или только авторизованные пользователи (logged in). Для авторизованных можно дополнительно ограничить видимость конкретными ролями, например, пункт «Админка» видят только Administrators и Editors.

  • Живые данные пользователя в меню. В текст пункта подставляются динамические значения: имя ({first_name}), фамилия ({last_name}), логин ({username}), отображаемое имя ({display_name}), ник ({nickname}), email ({email}) и даже аватар ({avatar}) с настраиваемым размером. Меню превращается из статичного списка в персонализированную панель, «Привет, Алексей» вместо безликого «Мой профиль».

  • Ссылки входа, регистрации и выхода. Добавляются парой кликов через встроенный виджет «User Links» в редакторе меню. Для каждой ссылки настраивается перенаправление: текущая страница, главная или произвольный URL.

Плагин предельно легковесный, минимум WordPress 4.6 и PHP 5.6, никаких навязчивых апселлов. Премиум-версии нет, вся функциональность доступна сразу.

Единственный нюанс: User Menus не создаёт отдельные меню для разных ролей. Он управляет видимостью пунктов внутри одного меню. Если вам нужно именно переключать целые меню (гость видит Меню А, автор, Меню Б), смотрите в сторону Conditional Menus или If Menu. Но для 90% сценариев «показать/скрыть пункты» User Menus закрывает задачу без оверхеда.

Установка и настройка за 3 шага

Плагин ставится стандартно, через админку WordPress.

Установка: Plugins → Add New, в поиске наберите «User Menus» (автор, Daniel Iser, Code Atlantic). Нажмите Install Now, затем Activate.

После активации в редакторе меню (Appearance → Menus) у каждого пункта появляется новый блок настроек. Дальше, по шагам.

Шаг 1: Настройка видимости пунктов меню

Выпадающий список видимости пункта меню в WordPress

Откройте любой существующий пункт меню или создайте новый. В развёрнутом блоке появится выпадающий список «Кто может видеть эту ссылку» с тремя вариантами:

  • Everyone, пункт видят все посетители (по умолчанию).
  • Logged Out Users, только гости, не вошедшие в систему. Сюда отправляются ссылки «Войти» и «Регистрация».
  • Logged In Users, только авторизованные пользователи. При выборе этого варианта раскрывается дополнительная настройка: можно отметить конкретные роли, которым пункт доступен, либо, наоборот, исключить отдельные роли из видимости.

Если ни одна роль не выбрана, пункт видят все залогиненные пользователи. Как только вы отмечаете хотя бы одну роль в списке «Choose which roles can see this link», пункт становится виден только этим ролям.

После настройки нажмите Save Menu. Проверьте результат в режиме инкогнито: откройте сайт гостем и после входа в систему, меню должны различаться.

Шаг 2: Персонализация, имя пользователя в меню

Вставка имени пользователя в навигационное меню через плагин User Menus

Самый заметный для пользователя штрих, когда меню обращается к нему по имени.

Создайте пункт меню, доступный только для «Logged In Users». В поле Navigation Label нажмите серую кнопку со стрелкой, раскроется список доступных плейсхолдеров. Выберите нужный (например, {first_name}), и он вставится в текст пункта. Можно комбинировать: «Привет, {first_name} {last_name}» или «{display_name}, Профиль».

Доступные плейсхолдеры: имя ({first_name}), фамилия ({last_name}), логин ({username}), отображаемое имя ({display_name}), ник ({nickname}), email ({email}) и аватар ({avatar}). Для аватара настраивается размер в пикселях.

Сохраните меню и проверьте под тестовым пользователем, в навигации должно отобразиться его имя.

Шаг 3: Ссылки входа и выхода

Добавление ссылок входа и выхода в меню WordPress

В левой колонке редактора меню, в блоке Add menu items, разверните секцию User Links. Отметьте флажками нужные ссылки:

  • Login, ссылка «Войти».
  • Register, ссылка «Регистрация».
  • Logout, ссылка «Выйти».

Нажмите Add to Menu. Плагин сам добавит их с правильными URL.

Разверните добавленный пункт и настройте редирект в выпадающем списке «Куда вести пользователей потом?»:

  • Current Page, пользователь остаётся на той же странице (удобно для входа: вошёл и продолжил с того же места).
  • Homepage, переброс на главную.
  • Custom URL, произвольная страница, например личный кабинет или страница благодарности.

Рекомендую для ссылки «Войти» ставить Current Page или Custom URL (в личный кабинет), а для «Выйти», Homepage. Регистрацию можно вести на страницу приветствия нового участника.

После сохранения проверьте обе ссылки в живом сайте, и гостем, и залогиненным пользователем. Логика автоматическая: гость видит «Войти / Регистрация», авторизованный пользователь видит «Выйти».

Видеоинструкция: вся настройка за 5 минут

Наглядный разбор всех трёх шагов с экрана, в этом коротком руководстве:

После настройки проверьте работу на реальном сайте: откройте страницу в режиме инкогнито (гость), затем войдите под тестовой учётной записью. Меню должно меняться динамически, без перезагрузки страницы.

⁉️🤔 Частые вопросы

Можно ли сделать разные меню для разных ролей, а не только «гость/пользователь»?

Да, именно для этого и нужен выбор ролей в настройках пункта. Выставляете видимость «Logged In Users», затем в блоке «Choose which roles can see this link» отмечаете нужные роли. Редакторы видят одни пункты, подписчики, другие. Если ролей много, удобно использовать метод исключения: отметить «Choose which roles won't see this link» и убрать одну-две роли, оставив меню для всех остальных.

Плагин конфликтует с темами и другими плагинами?

На практике User Menus дружит с большинством тем, включая кастомные и FSE-темы. Если меню не меняется динамически после настройки, скорее всего, тема использует жёстко закодированное меню (hardcoded wp_nav_menu без фильтров). Тогда поможет либо смена темы, либо замена вызова меню в шаблоне на стандартный. С другими плагинами конфликтов не замечено, плагин работает на стандартных хуках WordPress.

Что делать, если плагин перестал обновляться?

User Menus стабилен и выполняет ровно одну функцию, управление видимостью пунктов меню. Даже если автор приостановит разработку, плагин продолжит работать: он не зависит от внешних API и построен на нативных механизмах WordPress (фильтр wp_nav_menu_objects). В крайнем случае ту же логику можно реализовать кодом в functions.php, но для типовых сайтов проще оставаться на плагине.

Нужен ли кеширующий плагин для работы динамического меню?

Если вы используете агрессивное кеширование страниц (WP Rocket, LiteSpeed с гостевым кешем), меню может «залипнуть» в том состоянии, в котором его увидел первый посетитель. Решение, включить опцию «Separate cache for logged-in users» в настройках кеш-плагина. Большинство современных плагинов кеширования умеют различать гостей и авторизованных пользователей автоматически.

Что ставить в 2026 году для динамических меню WordPress

User Menus остаётся простейшим и самым популярным решением для задачи «показать/скрыть пункты меню по статусу пользователя». 80 000+ активных установок и оценка 5 звёзд говорят сами за себя: плагин работает, не ломается и не перегружает сайт.

Если понадобится более тонкая логика, переключение целых меню целиком, гео-таргетинг, A/B-варианты, смотрите на Conditional Menus или If Menu. Но в большинстве случаев трёх правил «все / гости / авторизованные» достаточно.

Попробуйте User Menus на тестовой установке WordPress. Это бесплатно, установка занимает минуту, а результат, профессиональное динамическое меню, которое само подстраивается под посетителя.