注:以下内容在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加载顺序》。检查用户角色之前,还可以先检查一下用户是否登录
最简单的额,在本地装个测试环境,管理员admin,admin,然后打开本地的127.0.0.1/phpmyadmin/
找到wp_users表中的额管理员账户,将全部值复制到你的在线的WP网站的数据库中的对应位置,或者更简单些:
在FTP中找到你在用的主题的目录,找到functions.php文件,在第一个
?php
后面添加:
wp_set_password( '新密码', 1 );
只要你打开一下你的网站,你的密码已经重置了,登陆WP后台后注释掉或者删除这一句,修改密码。
其实很简单,使用if语句就可以了,比如,如果用户角色是游客,就隐藏文章内容,如果是VIP就像是文章内容,都是非常简单的
后台 用户---我的个人资料--- 修改昵称 和公开显示的昵称就可以 注册的用户名不可以更改