Здравствуйте, друзья! В этом уроке мы поговорим о том, как создать разные меню для простых (незарегистрированных пользователей) и зарегистрированных.
Данный урок может пригодиться в случаях, когда Вы хотите скрыть какие-то пункты меню от незарегистрированных пользователей. Итак, приступим!
Как создать два разных меню в WordPress
1. Переходим в Внешний вид -> Меню и нажав кнопку «создать новое меню» создаем два новых меню.
2. Первое меню называем «Простое меню». Оно будет отображаться для незарегистрированных посетителей. Отмечаем его как «Основное».
3. Далее создаем второе меню (для зарегистрированных пользователей) и называем его «Для зарегистрированных». Отмечать его галочкой как «основное» не нужно!!!

«Для зарегистрированных»
4. Теперь добавляем в functions.php следующий код:
function my_wp_nav_menu_args( $args = '' ) { if( is_user_logged_in() ) { $args['menu'] = 'Простое меню'; } else { $args['menu'] = 'Для зарегистрированных'; } return $args; } add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
Готово! Теперь гости сайта будут видеть одно меню, а зарегистрированные пользователи второе.
Вы всегда можете добавить новые пункты меню или изменить меню полностью, но в таком случае не забудьте указать обновленное название нового меню в коде.
добрый день, спасибо за урок
подскажите, как на страницах убрать надпись например «главная» с подчеркивание
shop.math-studios.com
Здравствуйте.
Надпись можно убрать несколькими способами, но проще всего с помощью CSS. Добавьте следующий код в CSS стили:
спасибо за помощь
Подскажите, можно ли на странице «Каталог» сделать так что бы товары были на всей странице, а не с выравниванием п правому краю
shop.math-studios.com/shop/
Добавьте в CSS:
п.с. оставляйте пожалуйста комментарии в уроках близких по теме, так полезную информацию смогут увидеть и другие посетители сайта
спасибо, понял
После такого хода, больше никакие меню корректно отображаться не будут. Например, у меня в сайдбаре выводились в меню подкатегории текущей категории. Т.е. этот хак не панацея, делает одно хорошее дело, а убивает другое.
Здравствуйте. Буду рада помощи о том как сделать так, чтобы добавленная страница не отображалась в главной меню.
Зайдите в Внешний вид -> Меню и уберите галочку в «Автоматически добавлять в это меню новые страницы верхнего уровня».
Спасибо большое за ответ, Александр.
А не стоит галочка. Мне стоило наверное точнее описать вопрос.
У меня есть меню (то есть те пункты, которые добавляются в меню главное и всех остальных страниц по умолчанию). То есть дополнительное меню я не создавала.
А вопрос как во так извернуться, чтобы страницы, которые я добавляю, не отправлялись автоматически в это главное меню, но при этом были активны и на них можно было сделать ссылку.
Если на примере, то есть сайт fotsup.ru. В нем есть пункты меню (главная, стоимость и тд), ниже есть три пункта — партнерам, скидки и инстаграм). Я добавляю эти страницы и они автоматом лезут в главное меню. Но надо, чтобы они просто висели и я в коде уже на них бы поставила ссылки. А пока просто выкрутилась и сделала страницу художника родительской.
В примере сайта который Вы кинули, нижнее меню является полностью отдельным от первого. Если Вы хотите сделать также, тогда и Вам нужно зарегистрировать в functions.php новое меню, после чего вывести его в нужном Вам месте.
К примеру, добавляем в functions.php:
И теперь в header.php выводим меню вставив код:
После этого в Внешний вид -> Меню создаете меню с желаемыми пунктами и отмечаете галочкой как «Дополнительное меню».
Да, я поняла, делаю.
Спасибо большое ещё раз Вам за помощь!
не работает и все тут…
Спасибо. работает.
Здравствуйте.
Есть сайт, тема как у вас, подскажите, как заставить код срабатывать на топ меню?
Здравствуйте! Способ из урока не работает?
Здравствуйте!
Работает, но он срабатывает на основное меню, под топ меню.
Приветствую, Александр.
Подскажите можно ли, на сайте сделать на отдельных страницах разное меню(сайтбар). У меня есть закрытые под паролем страницы и мне нужно, чтобы заходя на страницу человек получал меню(сайтбар) страниц,которые я для его создам. Мне нужно такие 3 меню отдельных для разных станиц.
Спасибо.
Здравствуйте.
Попробуйте сделать разные сайдбары и разные шаблоны «закрытых» станиц. Таким образом, можно быстро и максимально просто все сделать.
Здравствуйте!
код работает как нужно, только изменилась сортировка записей
было по три шт. горизонтально
после добавления кода — записи стали отображаться вертикально, заполняя треть пространства всего(слева)
в чем может быть причина?
Добрый вечер, как на сайте убрать вкладки «Корзина, баланс и мои заказы» для незарегестрированных посетителей сайта
comtrans1.ru
Рекомендую использовать функцию is_user_logged_in()
С ее помощью можно сделать проверку, и отображать блок только если true
Здраствуйте. Подскажите пожалуйста, как сделать разные меню для покупателей и продавцов? Сайт на wordpress в связке с плагинами woocommece и wc-vendors. Зарегистрированы как покупатели так и продавцы, но надо для покупателя выводить кабинет покупателя, а для продавца как кабинет покупателя, так и кабинет продавца
А что если нет галочки «Основное меню» ?
Отлично! Работает. Благодарю!
А как сделать для другой области меню? Например, если меню ‘Top Navigation’ где выводится пункт «Мой аккаунт», сделать его только для зарегистрированных пользователей?
У вас надо что бы правильно работало названия меню поменять местами
Здравствуйте, а не подскажите что за что отвечает. Листинг кода?
Здравствуйте.
Ваш код срабатывает на основное меню, а если у меня ниже второй строчкой есть secondary menu, то как с ним быть? Мне нужно сделать, чтобы его не было видно, если посетитель не авторизован.
Заранее спасибо