Wordpress is_user_logged_in () работает только для администраторов и никакой другой роли - PullRequest
1 голос
/ 04 июня 2019

Я сделал пользовательскую панель администратора, которая отображается только для авторизованных пользователей. Но я только что заметил, что с функцией is_user_logged_in () она работает только для администраторов, а не для участников или зрителей.

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

Вот мой код PHP и HTML:

<?php if ( is_user_logged_in() ) : ?>
    <a href="<?php global $current_user; echo home_url() . '/members/' . $current_user->user_login . '/profile/'; ?>">My profile</a>
    <a class="screen-reader-shortcut" href="<?php echo esc_url( wp_logout_url() ); ?>"><?php _e('Log out'); ?></a>
<?php else: ?>
    <span>Become a member</span>
    <a href="/wp-login.php">Log in</a>
    <a class="cta-small" href="/register">Get invitation</a>
<?php endif; ?>

Есть идеи, почему это не работает?

Я использую Wordpress 5.2.1 и PHP 7.2

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Проблема была с плагином "WP Fastest Cache". При выключенном состоянии ошибки больше нет.

0 голосов
/ 04 июня 2019

Иногда функция is_user_logged_in () ведет себя странно при перенаправлениях шаблонов.

Попробуйте использовать другое условие, замените первую строку этим:

<?php if ( get_current_user_id() != 0 ) : ?>
...