因此,我创建了一个新用户作为Editor。
但后来我看到该用户无法更改主题设置,例如背景和标题。
是否有一种简单的方法允许编辑者角色编辑“二十一”或“二十一岁的孩子”中的任何主题设置。它?他基本上应该能够执行管理员可以执行的所有操作。主题,甚至可能更改主题。
#1 楼
您可以使用角色对象添加功能到编辑者角色,并从您的functions.php中添加add_cap。php<?php
// get the the role object
$editor = get_role('editor');
// add $cap capability to this role object
$editor->add_cap('edit_theme_options');
?>
您还可以删除功能:
$editor->remove_cap('delete_posts');
只看一下功能列表以及每个功能的含义。
评论
太好了,确实有效!对于矮子:get_role('editor')-> add_cap('edit_theme_options'); :)
– hakre
2011-3-25在0:55
@hakre FYI像a()-> b()这样的直接变量分配在5之前的PHP版本中不起作用。
–hitautodestruct
13年4月10日在8:40
由于角色通常存储在数据库中,因此更新角色应在插件中以及激活/停用钩子内进行。不必在每个WordPress进程上运行此代码。
–大卫
16年3月14日在8:35
#2 楼
由于这是该问题在Google上的第一个热门产品,我觉得这是进行更新的正确位置:对我来说,我无法通过
edit_theme_options
使其正常工作。然后,我阅读了插件源,发现它实际上是manage_options
。并且有效。tl; dr:
$role_object = get_role( 'editor' );
$role_object->add_cap( 'manage_options' );
对我有用(2014年)
评论
好东西家伙...
–阿巴斯
2015年12月30日下午5:59
对于WP> 4.0,需要再添加一行。$ role_object-> add_cap('customize');
– Alex
17 Mar 6 '17 at 3:33
#3 楼
他们不需要“ edit_themes”功能吗?您可以使用Justin Tadlocks插件http://wordpress.org/extend/plugins/members/编辑与每个角色相关的功能。#4 楼
另一个很棒的插件是用户角色编辑器(http://wordpress.org/extend/plugins/user-role-editor/)。它与会员相似,但是更加基本和易于使用。另外,如果需要的话,开发人员总是在听取反馈并提供帮助。#5 楼
这是旧的,但是这是更新的方法,可以实现此目的:add_filter( 'user_has_cap',
function( $caps ) {
if ( ! empty( $caps['edit_pages'] ) )
$caps['edit_theme_options'] = true;
return $caps;
} );
评论
提醒我……我为此编写了一个插件:编辑器的主题选项