• С компьютера всё нормально – если человек залогинен, в меню у него написано «Войти», если не залогинен, то «Выйти». Но вот в мобильном меню всегда «Выйти». Абсолютно не понимаю. что не так, вот код:

    add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );
    function add_loginout_link( $items, $args ) {
    	if (is_user_logged_in() && $args->theme_location == 'topbar' OR $args->theme_location == 'mobile') {
            $items .= '<li><a href="https://strategycon.ru/wp-admin/profile.php">Профиль</a></li>';
        }
        if (is_user_logged_in() && $args->theme_location == 'topbar' OR $args->theme_location == 'mobile') {
            $items .= '<li><a href="'. wp_logout_url() .'">Выйти</a></li>';
        }
        elseif (!is_user_logged_in() && $args->theme_location == 'topbar' OR $args->theme_location == 'mobile') {
            $items .= '<li><a href="'. site_url('wp-login.php') .'">Войти</a></li>';
        }
        return $items;
    }
Просмотр 5 ответов — с 1 по 5 (всего 5)
  • anonymized-14765447

    (@anonymized-14765447)

    arskrigitsioniets, привет.

    если залогинен, написано «Войти»

    Куда «войти», если залогинен?

    если не залогинен, то «Выйти»

    «Выйти» откуда, если не залогинен?

    anonymized-14765447

    (@anonymized-14765447)

    arskrigitsioniets,
    или topbar, или mobile:

    add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );
    function add_loginout_link( $items, $args ) {
    	if (is_user_logged_in() && ($args->theme_location == 'topbar' || $args->theme_location == 'mobile')) {
    		$items .= '
    			<li><a href="/wp-admin/profile.php">Профиль</a></li>
    			<li><a href="'. wp_logout_url() .'">Выйти</a></li>
    		';
        } elseif (!is_user_logged_in() && ($args->theme_location == 'topbar' || $args->theme_location == 'mobile')) {
    		$items .= '<li><a href="'. site_url('wp-login.php') .'">Войти</a></li>';
    	}
    	return $items;
    }

    —-

    и topbar, и mobile:

    add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );
    function add_loginout_link( $items, $args ) {
    	if (is_user_logged_in() && array($args->theme_location == 'topbar', $args->theme_location == 'mobile')) {
    		$items .= '
    			<li><a href="wp-admin/profile.php">Профиль</a></li>
    			<li><a href="'. wp_logout_url() .'">Выйти</a></li>
    		';
        } elseif (!is_user_logged_in() && array($args->theme_location == 'topbar', $args->theme_location == 'mobile')) {
    		$items .= '<li><a href="'. site_url('wp-login.php') .'">Войти</a></li>';
    	}
    	return $items;
    }

    «Выйти» откуда, если не залогинен?

    Ох, я как Пупа и Лупа всё перепутал. Наоборот.

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

    А нет, всё работает так, как надо, это был кеш. Большое спасибо!

    anonymized-14765447

    (@anonymized-14765447)

    arskrigitsioniets, на здоровье! 🙂

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Кнопка выйти вместо войти» закрыта для новых ответов.