Скрыть / заменить пункт меню при входе / выходе пользователя - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу иметь возможность скрыть или даже заменить кнопку «Моя учетная запись», когда пользователи вышли из системы, и я хочу иметь возможность скрыть или заменить кнопку «Регистрация», когда пользователи вошли в систему.

Как бы я поступил так?Я все еще любитель WordPress и все еще учусь, это то, что у меня есть в моем файле nav-menus.php.

if( is_user_logged_in() ) {
    wp_nav_menu( array( 'My Account' => 'logged-users' ) );
} else {
    wp_nav_menu( array( 'Registration' => 'not-logged-users' ) );
}

Я знаю, что это не правильно.

enter image description here

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Если вам нужно только скрыть их, я бы сделал это в основном через CSS.WP добавляет класс logged-in к элементу body, когда есть вошедший в систему пользователь, так что вы можете использовать его для различного форматирования элементов внутри тела.

Добавление классов к элементам меню через бэкэнд администратора,например, hide-when-logged-in и hide-when-not-logged-in.

. Затем вы можете использовать

body.logged-in .hide-when-logged-in,
body:not(logged-in) .hide-when-not-logged-in {
  display: none;
}

в своей таблице стилей, чтобы скрыть эти элементы при соответствующих условиях.

0 голосов
/ 12 февраля 2019

Сначала вам нужно создать оба меню, перейти к Внешний вид »Меню , создать два входа и выхода из меню.

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

function my_wp_nav_menu_args( $args = '' ) {

if( is_user_logged_in() ) { 
    $args['menu'] = 'logged-in'; //This value stands for the actual name you give to the menu when you create it.
} else { 
    $args['menu'] = 'logged-out';
} 
    return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
}

Вот и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...