正在开发 WordPress,想知道如何检查用户是否已登录?请继续阅读有用的用户 PHP 代码片段。
有时,您想添加一些功能,或者只向已登录的用户显示一些内容。使用 WordPress 内置的 is_user_logged_in()
函数就可以轻松做到这一点。本小贴士将向您展示如何检查用户是否已登录 WordPress。
要使用这个函数,您必须熟悉 PHP 编程。如果您正在编辑一个主题,我们建议您先创建一个子主题。这样您就可以编辑主题中的代码,而不会在父主题更新时中断。此外,您还可以使用自定义插件或 Code Snippets 插件添加代码。
检查用户是否登录 WordPress 函数
下面是一个使用 is_user_logged_in()
函数为已登录用户显示注销链接和为已注销用户显示登录链接的示例。
<?php if ( is_user_logged_in() ) { echo 'Welcome, logged in user. <a href="https://www.wbolt.com/check-if-user-is-logged-in-wordpress.html'.wp_logout_url().'">Click here to logout</a>.'; }else{ echo 'Please login by <a href="https://www.wbolt.com/check-if-user-is-logged-in-wordpress.html'.wp_login_url().'">clicking here</a>.' }
您可以在主题的 function.php 中使用此功能,为登录用户添加特定功能。它还可以用于主题的 index.php、archive.php、single.php 等,为登录用户提供各种功能。
检查当前用户是否为 WordPress 中的管理员
如果只想为已登录的管理员添加功能,可以使用函数 current_user_can()
。通过在 if 语句中使用 current_user_can('administrator')
,可以检查当前用户是否是网站管理员。
<?php if( current_user_can('administrator') ) { echo 'This will display for WordPress admins only.'; };
此外,您还可以针对用户的特定功能进行设置。
如果您在网站上创建了自定义角色,这将非常有用。有很多 WordPress 权限可以作为 if 语句的目标。例如,manage_options 适合针对管理员,而 edit_posts 适合针对编辑。
<?php if( current_user_can('manage_options') ) { echo 'This user can manage WordPress options. (Settings Page)'; };
此外,如果您不想使用 PHP,还可以在用户登录时使用 CSS 更改网站的样式。当用户登录时,WordPress 会在网站的 body 标签中添加 “logged-in” 类。
例如,下面的代码段将在用户登录时更改网站的背景颜色。
/* Change the background color for logged in users */ body.logged-in { background-color: #BEBEBE }
除了在主题和 functions.php 中使用 is_user_logged_in()
,还可以在自定义 WordPress 插件中加入此功能,以达到同样的效果。