• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Сделать разделение в меню

Miron4ik

Гуру форума
Регистрация
16 Сен 2012
Сообщения
170
Реакции
82
Здравствуйте форумчане.
Задача следующая: необходимо сделать в WP так, что некоторые пункты меню не были видны незарегистрированным пользователям.
Например, пункт меню "Заработок" и "Мануалы" будет виден только после регистрации пользователя. Для гостей эти пункты не видны.
Как это сделать? Или возможно есть плагины какие?
 
Ну как вариант, создать в админке 2 типа меню: для гостей и юзеров, а код сделать таким:
PHP:
<?php
if ( is_user_logged_in() ) {
    wp_nav_menu(array('theme_location' => 'main', 'menu_id' => 'menu'));
} else {
    wp_nav_menu(array('theme_location' => 'guest', 'menu_id' => 'menu'));
};
?>
Плагин для распределения ролей в меню
Для просмотра ссылки Войди или Зарегистрируйся
 
Регистрируем два навигационных меню в wordpress, в файле functions.php:
PHP:
register_nav_menus(array('UserLoggedIn'=>'User menu logged in','UserLoggedOut'=>'User menu logged out',));
  1. User menu logged in – для залогиненных (зарегистрированных) посетителей сайта.
  2. User menu logged out – для незалогиненных (незарегистрированных) посетителей сайта.
Далее пишем функцию, которая будет выбирать, какое меню показывать зарегистрированным, а какое незарегистрированным:
PHP:
function evgm_nav_menu_args($args =''){if( is_user_logged_in()){
$args['theme_location']='UserLoggedIn';}else{
$args['theme_location']='UserLoggedOut';}return array_merge($args, $evgm_nav_menu_args);}
add_filter('wp_nav_menu_args','evgm_nav_menu_args');
Вот и все, теперь в администраторском разделе cms wordpress: «Внешний вид» → «Меню» → вкладка «Управления областями» у нас появятся две новые области расположения меню: «User menu logged in» и «User menu logged out».

Вывод навигационного меню в шаблоне сайта:
PHP:
<nav><?php
if(has_nav_menu('primary_navigation')):
wp_nav_menu(array('theme_location'=>'primary_navigation'));
endif;?></nav>
 
Назад
Сверху