php - Wordpress is_user_logged_in() 仅适用于管理员,不适用于其他角色
问题描述
我制作了一个仅对登录用户显示的自定义管理栏。但我刚刚注意到,使用“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
解决方案
有时 is_user_logged_in() 函数在模板重定向上表现异常。
尝试使用不同的条件,将第一行替换为:
<?php if ( get_current_user_id() != 0 ) : ?>
推荐阅读
- javascript - 使用 aspnet mvc 到 C# 的 Js 语法
- powershell - - 目录开关并不总是在 Powershell 中工作
- scala - 为什么在 Spark SQL 中对列进行“==”比较不起作用?
- html - 使用 Bootstrap 4 将嵌套列的响应定位从垂直更改为水平
- html - 从 CSS 调整 SVG 的大小和颜色
- python - 如何在使用 np.r_ 时修复内存错误
- c# - 如何根据json的结构选择在运行时反序列化的类型?
- function - 从函数返回函数以及为什么省略括号?
- python-3.x - os.walk 帮助 - 分块处理数据 - python3
- c - 为什么 fwrite 会多次写入每个字符?