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

Тема в разделе "Wordpress", создана пользователем Miron4ik, 15 дек 2014.

Модераторы: Sorcus
  1. Miron4ik

    Miron4ik

    Регистр.:
    16 сен 2012
    Сообщения:
    157
    Симпатии:
    82
    Здравствуйте форумчане.
    Задача следующая: необходимо сделать в WP так, что некоторые пункты меню не были видны незарегистрированным пользователям.
    Например, пункт меню "Заработок" и "Мануалы" будет виден только после регистрации пользователя. Для гостей эти пункты не видны.
    Как это сделать? Или возможно есть плагины какие?
     
  2. Teceract

    Teceract

    Регистр.:
    15 фев 2009
    Сообщения:
    154
    Симпатии:
    71
    Ну как вариант, создать в админке 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'));
    };
    ?>
    Плагин для распределения ролей в меню
    If Menu
     
    Miron4ik нравится это.
  3. 05qwerty

    05qwerty Писатель

    Регистр.:
    8 сен 2013
    Сообщения:
    5
    Симпатии:
    1
    Регистрируем два навигационных меню в 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>
     
    Miron4ik нравится это.
  4. Miron4ik

    Miron4ik

    Регистр.:
    16 сен 2012
    Сообщения:
    157
    Симпатии:
    82
    Тема закрыта, спасибо за помощь!
     
  5. leray

    leray Создатель

    Регистр.:
    9 июн 2009
    Сообщения:
    10
    Симпатии:
    0
    В продолжение темы: есть какой-либо плагин, который делает разделы платными (видел плагин для постов, но не для целых разделов)?