Capabilities Not Changing

时间:2014-05-01 作者:user417627

我希望编辑器能够列出、添加和编辑用户。我认为下面的代码可以做到这一点,但它不起作用-没有为任何编辑器显示新的用户菜单。我错过什么了吗?

function increase_editor_role(){
    $role = get_role(\'editor\');
    $role->add_cap(\'list_users\'); 
    $role->add_cap(\'edit_users\'); 
    $role->add_cap(\'create_users\'); 
}
add_action(\'admin_init\', \'increase_editor_role\');

2 个回复
最合适的回答,由SO网友:Pi Lover 整理而成

我相信你的代码是对的。尝试转到:“wp管理员/用户”。php’手动检查您是否有权限这样做。如果我的想法是对的,那就是$submenu 隐藏的项目。

如果可以访问用户列表,请尝试打印全局变量$submenu 看看是否有用户。php’就在那里。

SO网友:Steven Jones

代码看起来应该可以工作。

要记住的一件事是,当您运行代码时,它将写入数据库。由于编辑器在下一次页面加载时没有这些权限,因此在页面加载生效后,它将成为页面加载。

考虑到这一点,您可能希望将其包装为一个条件,以便它只运行一次,而不是每次访问管理区域时都运行,因为写入数据库会减慢您的站点速度。或者,如果您确实让它工作了,请删除代码。

我也同意其他一些评论,这可能是插件可以为您做的事情,因为它是从数据库驱动的。

结束

相关推荐

PHP致命错误:无法为wp-includes/capabilities.php中的非对象调用重载函数

我在apache日志中遇到了太多以下错误。PHP Fatal error: Cannot call overloaded function for non-object in wp-includes/capabilities.php on line 1187这是函数current\\u user\\u can($capability)的内部,第1187行如下所示:$current_user = wp_get_current_user(); 我不知道问题出在哪里?