Wordpress is_user_logged_in()仅适用于管理员,无其他角色

时间:2019-06-04 05:14:19

标签: php wordpress login roles

我创建了一个自定义管理栏,仅对已登录的用户显示。但是我只是注意到,使用“ 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 :(得分:0)

有时is_user_logged_in()函数在模板重定向中表现异常。

尝试使用其他条件,用此条件替换第一行:

"System.Byte[]"

答案 1 :(得分:0)

问题出在“ WP Fastest Cache”插件上。关闭时,错误不再存在。