过去判断登录用户的角色我喜欢用current_user_can(),比如判断当前用户是否是作者用current_user_can('author'),记得WordPress官方文档中给的例子也是这样用,不过今天看了一下文档,貌似用法变了,传递角色作为参数不再可靠,正确的用法是传递$capability,那么该如何判断用户角色呢?
注:以下内容在WP 3.4+上测试通过
current_user_can()的正确用法
current_user_can()文档中有一句话要注意一下
Do not pass a role name to current_user_can(), as this is not guaranteed to work correctly.
意思是说传递用户角色名称(如author、contributor)作为参数不能100%保证返回正确的结果,正确的用法是传递$capability,从这个函数的表面意思看,参数是权限比参数是角色名称更靠谱。
所以,要根据不同角色拥有的权限来判断用户角色,用户权限可以在Roles and Capabilities中找到。
判断用户是否为管理员(Administrator)
if( current_user_can( 'manage_options' ) ) {
echo 'The current user is a administrator';
}
判断用户是否为编辑(Editor)
if( current_user_can( 'publish_pages' ) && !current_user_can( 'manage_options' ) ) {
echo 'The current user is an editor';
}
判断用户是否为作者(Author)
if( current_user_can( 'publish_posts' ) && !current_user_can( 'publish_pages' ) ) {
echo 'The current user is an author';
}
判断用户是否为投稿者(Contributor)
if( current_user_can( 'edit_posts' ) && !current_user_can( 'publish_posts' ) ) {
echo 'The current user is a contributor';
}
判断用户是否为订阅者(Subscriber)
if( current_user_can( 'read' ) && !current_user_can( 'edit_posts' ) ) {
echo 'The current user is a subscriber';
}
用$current_user判断
$current_user是WordPress的一个全局变量,当用户登录后,这个里面就会有用户的角色和权限信息。
当WordPress的init action执行后,就可以安全的使用$current_user全局变量了。
在模板文件中判断登录用户是否为作者(Author)
global $current_user;
if( $current_user->roles[0] == 'author' ) {
echo 'The current user is an author';
}
在functions.php中判断用户是否为作者(Author)
add_action( 'init', 'check_user_role' );
function check_user_role() {
global $current_user;
if( $current_user->roles[0] == 'author' ) {
echo 'The current user is an author';
}
}
之所以要使用
add_action( 'init', 'check_user_role' );
是因为$current_user这个全部变量到init action执行时才完成赋值,既然要读它的内容,至少要等到它的内容准备好后再读取。functions.php的代码先与init action执行,所以在functions.php中直接写global $current_user是无法获取用户信息的。详细信息可以参考《WordPress Actions加载顺序》。
检查用户角色之前,还可以先检查一下用户是否登录
<?php if( is_user_logged_in() ) { //用户已登录,检查用户角色 } ?>
更简单的方法
还有一种更直接的方法,例如判断当前用户是否为管理员
global $current_user; if(in_array( 'administrator', $current_user->roles )){ echo 'administrator'; }
相关推荐
Foxlogin是一款快速让你的WordPress网站接入微博和QQ快捷登陆的插件,让你的站点用户绑定腾讯QQ或新浪微博来进行登录的wordpress中文...【新登录用户角色】:这里设置注册后的用户的角色,可以是投稿者,或者订阅者。
用户角色 WordPress 2.0 之后的版本加入了更为灵活的用户身份系统,同时移除了之前的用户等级制度。 到 Codex 阅读关于身份和权限的更多内容。 最后 •对 WordPress 有任何建议、想法、评论或发现了 bug,请加入...
本页面列出了当前您站点的所有用户,你可以再后台对每个用户的角色进行修改,用户角色中的一种角色:站点管理员、编辑、作者、贡献者,或订阅者。在用户登录到仪表盘后,不同角色看到的操作界面是不一样的,权限低于...
切换到其他用户而无需以该用户身份登录,甚至无需切换角色并暂时更改您自己的功能。 当您以其他用户身份查看时,还可以更改该用户的首选项; 例如各种管理页面上的屏幕设置。 使用“角色默认值”模块,您可以设置...
expire-users:在WordPress中设置用户的到期日期
该插件支持全局,按角色和按用户设置配置。 该插件将透明地处理任何OpenOTP登录模式,包括仅LDAP,仅OTP和LDAP + OTP。 OpenOTP是RCDevs用户身份验证解决方案。 OpenOTP是一个服务器应用程序,它基于一次性密码...
Woocommerce用户注册插件:自定义字段,验证登录和客户角色" ---------- 泰森云每天更新发布最新WordPress主题、HTML主题、WordPress插件、shopify主题、opencart主题、PHP项目源码、安卓项目源码、ios项目源码,更...
通过管理,可以轻松地根据用户角色从视图中删除项目。其他注意事项如何,常见问题解答请访问开发资料库上的了解已知问题及其解决方案。 此外,我们还列出了有用的问题,方法。帮助“您自己的选择” 有关功能强大的...
◾新增:编辑角色的用户识别图标 ◾新增:投稿可直接发布(管理员,可直接发布投稿的角色和 VIP) ◾新增:快讯文章页增加分享封面按钮 ◾修复:对 WooCommerce 商城插件的支持 ◾修复:问答插件翻译没有过来的问题...
这个WordPress插件根据用户是否具有选定的功能或角色来限制用户对仪表板的访问。 不允许的用户将重定向到所选的URL。 特征: 将仪表板访问权限限制为仅管理员,管理员+编辑者,管理员+编辑者+作者,或通过特定功能...
因此,如果菜单中有一个仅想显示给已登录用户,某些类型的用户甚至只显示给已注销用户的链接,则此插件适合您。 导航菜单角色非常灵活。 除了标准用户角色之外,您还可以使用nav_menu_roles过滤器添加带有自定义...
以下WordPress用户角色正在使用中: 管理员/编辑者:能够管理网站内容 订阅者:能够查看网站内容 匿名用户无法查看网站-用户必须先登录才能看到内容。 要求 PHP> = 7.1 作曲家- Docker和docker-compose- Dory...
所谓全栈式指的是Yii框架本身实现了web开发中所要用到的所有功能,比如MVC,ORM(DAO/ActiveRecord), 全球化(I18N/L10N), 缓存(caching), 基于jQuery Ajax支持(jQuery-based AJAX support), 基于角色的用户验证...
业务合作伙伴功能(业主用户角色) 注册/登录模式 10个站点皮肤 8种标题样式 6页脚皮肤 55+有用的短代码 仪表板页面 博客整合 超级菜单 粘性菜单栏 Ajax分页 Ajax照片库和地图弹出窗口 货币管理 定制...
使用自定义 Wordpress 角色将用户和资产经理锁定在 Wordpress 管理功能之外。 创建一个用于跟踪资产状态的数据库表,以及另一个用于记录状态更改(例如登录和注销)的表。 尽量保持简单,避免使用 javascript。 仅...
Pilau Gravity Forms前端登录 Gravity Forms插件可提供前端登录功能。 注意:取决于插件。 安装 请注意,插件文件夹应命名为gravity-forms-frontend-login 。 这是因为如果使用来更新此插件,如果该文件夹的名称...
新功能 添加了使用 API 端点从 CloneSystem 本身提取 PCI 报告的功能 ...添加了针对使用电话号码插件的 WordPress 登录的新检查:CVE-2023-23492 为 WordPress JupiterX 核心插件添加了新检查:CVE-2
新功能 添加了使用 API 端点从 CloneSystem 本身提取 PCI 报告的功能 ...添加了针对使用电话号码插件的 WordPress 登录的新检查:CVE-2023-23492 为 WordPress JupiterX 核心插件添加了新检查:CVE-2
“按用户角色限制阻止” 这个 WordPress 插件使您能够使用可以为每个用户的权限显示/隐藏的块。 您可以设置每个权限的显示切换,例如“管理员”和“海报”。 您也可以简单地指定“已登录/未登录”。 ▼ WordPress...
每个登录的用户操作都将显示在活动流中,并按用户,角色,上下文,操作或IP地址进行轻松过滤。 对于编辑团队来说,Stream是一个功能强大的工具,它为潜在的错误甚至安全漏洞提供了审计线索。 核心Stream插件将数据...