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

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

Здравствуйте, друзья! В этом уроке мы поговорим о том, как создать разные меню для простых (незарегистрированных пользователей) и зарегистрированных.

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

Как создать два разных меню в WordPress

1. Переходим в Внешний вид -> Меню и нажав кнопку «создать новое меню» создаем два новых меню.

2. Первое меню называем «Простое меню». Оно будет отображаться для незарегистрированных посетителей. Отмечаем его как «Основное».

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

«Простое меню»

3. Далее создаем второе меню (для зарегистрированных пользователей) и называем его «Для зарегистрированных». Отмечать его галочкой как «основное» не нужно!!!

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

«Для зарегистрированных»

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' );

Готово! Теперь гости сайта будут видеть одно меню, а зарегистрированные пользователи второе.

Вы всегда можете добавить новые пункты меню или изменить меню полностью, но в таком случае не забудьте указать обновленное название нового меню в коде.

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

Обзор

Оценка урока

Рейтинг: 4.84 ( 8 голосов )
100

29 комментариев

  1. Аватар

    добрый день, спасибо за урок
    подскажите, как на страницах убрать надпись например «главная» с подчеркивание

    shop.math-studios.com

  2. Аватар

    Подскажите, можно ли на странице «Каталог» сделать так что бы товары были на всей странице, а не с выравниванием п правому краю

    shop.math-studios.com/shop/

    • Аватар

      Добавьте в CSS:

      body.woocommerce #primary { width: 100%; }
      

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

  3. Аватар

    спасибо, понял

  4. Аватар

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

  5. Аватар

    Здравствуйте. Буду рада помощи о том как сделать так, чтобы добавленная страница не отображалась в главной меню.

    • Аватар

      Зайдите в Внешний вид -> Меню и уберите галочку в «Автоматически добавлять в это меню новые страницы верхнего уровня».

      • Аватар

        Спасибо большое за ответ, Александр.
        А не стоит галочка. Мне стоило наверное точнее описать вопрос.

        У меня есть меню (то есть те пункты, которые добавляются в меню главное и всех остальных страниц по умолчанию). То есть дополнительное меню я не создавала.

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

        Если на примере, то есть сайт fotsup.ru. В нем есть пункты меню (главная, стоимость и тд), ниже есть три пункта — партнерам, скидки и инстаграм). Я добавляю эти страницы и они автоматом лезут в главное меню. Но надо, чтобы они просто висели и я в коде уже на них бы поставила ссылки. А пока просто выкрутилась и сделала страницу художника родительской.

        • Аватар

          В примере сайта который Вы кинули, нижнее меню является полностью отдельным от первого. Если Вы хотите сделать также, тогда и Вам нужно зарегистрировать в functions.php новое меню, после чего вывести его в нужном Вам месте.
          К примеру, добавляем в functions.php:

          register_nav_menus(
             array(
            'primary2'=>__('Дополнительное меню')
            )
          );
          

          И теперь в header.php выводим меню вставив код:

          <?php wp_nav_menu( array( 'theme_location' => 'primary2', 'menu_class' => 'nav-menu2' ) ); ?>
          

          После этого в Внешний вид -> Меню создаете меню с желаемыми пунктами и отмечаете галочкой как «Дополнительное меню».

  6. Аватар

    Да, я поняла, делаю.

    Спасибо большое ещё раз Вам за помощь!

  7. Аватар

    не работает и все тут…

  8. Аватар

    Спасибо. работает.

  9. Аватар

    Здравствуйте.

    Есть сайт, тема как у вас, подскажите, как заставить код срабатывать на топ меню?

  10. Аватар

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

    • Аватар

      Здравствуйте.
      Попробуйте сделать разные сайдбары и разные шаблоны «закрытых» станиц. Таким образом, можно быстро и максимально просто все сделать.

  11. Аватар

    Здравствуйте!
    код работает как нужно, только изменилась сортировка записей
    было по три шт. горизонтально
    после добавления кода — записи стали отображаться вертикально, заполняя треть пространства всего(слева)
    в чем может быть причина?

  12. Аватар

    Добрый вечер, как на сайте убрать вкладки «Корзина, баланс и мои заказы» для незарегестрированных посетителей сайта
    comtrans1.ru

  13. Аватар

    Здраствуйте. Подскажите пожалуйста, как сделать разные меню для покупателей и продавцов? Сайт на wordpress в связке с плагинами woocommece и wc-vendors. Зарегистрированы как покупатели так и продавцы, но надо для покупателя выводить кабинет покупателя, а для продавца как кабинет покупателя, так и кабинет продавца

  14. Аватар

    А что если нет галочки «Основное меню» ?

  15. Аватар

    Отлично! Работает. Благодарю!

    • Аватар

      А как сделать для другой области меню? Например, если меню ‘Top Navigation’ где выводится пункт «Мой аккаунт», сделать его только для зарегистрированных пользователей?

  16. Аватар
    Алексей

    У вас надо что бы правильно работало названия меню поменять местами

  17. Аватар
    Дмитрий

    Здравствуйте, а не подскажите что за что отвечает. Листинг кода?

  18. Аватар
    Георгий

    Здравствуйте.
    Ваш код срабатывает на основное меню, а если у меня ниже второй строчкой есть secondary menu, то как с ним быть? Мне нужно сделать, чтобы его не было видно, если посетитель не авторизован.
    Заранее спасибо

Оставить комментарий

Ваш email не будет опубликован.

*