User Roles Not Sticking

时间:2011-04-08 作者:MartinJJ

我为super\\u poster添加了一个自定义用户角色,基本上他们发了20篇帖子,一旦达到$postlimit,就会自动向下移动到贡献者级别,向下移动和帖子计数工作正常,我的问题是wp系统会将用户添加到“无”中,而不是添加到贡献者角色中

if ($count_posts >= $postlimit) {
    $current_user->remove_role( \'super_poster\' );
    $current_user->add_role( \'contributer\' );

  }
contributer在注册时设置为新用户默认值,因此我的情况是在wp admin用户编辑页面中,我可以看到新移动的(从super poster进入contributer)仍然具有“contributer的附加功能”,但是用户角色下拉列表中显示--此站点没有角色--

wp admin users页面在用户组“无”中显示super\\u海报

有什么好处?

3 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

您可能想使用WP_User::set_role( \'contributor\' ) 相反它取消设置所有当前角色,并设置新角色(参数)。

因此,上述内容是

if ($count_posts >= $postlimit) {
  $current_user->set_role( \'contributor\' );
}

SO网友:Milo

“contributor”拼写为O,也许您刚刚拼错了?

SO网友:MartinJJ

很抱歉,我的回复太晚了,工作和家庭生活占据了主导地位,关于我遇到的问题,我尝试了约翰·P·布洛赫的建议,结果完全一样:用户角色=没有,这个网站也没有角色,我通过codex做了很多研究,但我想不出什么,我突然发现我使用了一个主题,默认情况下,在注册时将用户角色设置为贡献者,因此,我尝试了下面的小程序块,它正是我所需要的,即当用户角色从自定义角色更改为贡献者时,在wp用户面板中显示他们是贡献者,而不是没有角色。

//$current_user->set_role( \'contributer\' );
$current_user->set_role(get_option(\'default_role\'));
不知道它是否真正的语义从一个可湿性粉剂这样做的方式,但它似乎是工作的方式,我希望它这样做。

问候Martin

结束

相关推荐