Домой / 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.85 ( 7 голосов )
100

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

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

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

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

*