Показываем другое меню залогиненым пользователям в WordPress

Если вы ведете сайт сообщества, или же держите форум на WordPress, вы можете столкнуться с ситуациями, когда вам нужно вывести другое меню залогиненым пользователям, нежели просто посетителям. Например, пользователям, вошедшим на сайт, можно вывести ссылку на их профиль. а незалогиненым — ссылку на страницу регистрации на ресурсе. В этой статье мы покажем вам как вывести другое меню залогиненым пользователям в WordPress.

Создаем несколько меню в WordPress

В WordPress, даже если у вас в теме только одно положение для меню, вы можете добавлять в него еще сколько угодно менюшек.

Переходим во Внешний вид » Меню, создаем два меню для logged-in и logged-out.

different-menus[1]

После того, как мы создали меню, добавляем этот код в файл functions.php вашей темы или в плагин для сайта WordPress:

function my_wp_nav_menu_args( $args = '' ) {

if( is_user_logged_in() ) { 
	$args['menu'] = 'logged-in';
} else { 
	$args['menu'] = 'logged-out';
} 
	return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );

Вот и всё. Теперь ваши залогиненые пользователи будут видеть меню logged-in, а незарегистрированные или завершившие сессию — другое.

Этот способ позволяет создавать два различных меню для ваших пользователей, так что вы можете параллельно добавлять что-то в одно меню, что-то — в другое. Есть и другие способы реализовать то же самое. Например, если вам нужно просто добавить ссылки Войти и Выйти в меню, то вы можете добавить собственные элементы в меню навигации.

Надеемся, что статья помогла вам отобразить другое меню залогиненым пользователям в WordPress. По всем вопросам и критике просьба писать в комментарии.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
  • Игорь

    А получится ли сделать так с уставленным WooCommerce? Там же в нем привязываются страницы к WooCommerce

    • ADv

      Конечно получится. Вынесите нужные страницы в меню, укажите название меню в коде..

  • Swaymen

    Здравствуйте, подскажите как использовать данное решение на теме Sahifa, top menu, по умолчанию срабатывает на главное nav menu, которое расположено под top menu.

    За ранее Спасибо!

    • ADv

      Видимо в $args[‘menu’] нужно указать меню, на которое должен реагировать код

Scroll To Top