如何允许编辑者角色更改主题设置?

时间:2011-03-24 作者:hakre

我刚刚为一个朋友建立了一个新博客,我想最好不要马上给他管理员权限,以防万一。

因此,我创建了一个新用户作为编辑器。

但后来我发现,这个用户无法更改背景和标题等主题设置。

有没有一种简单的方法可以让编辑器角色编辑210或其子对象中的任何主题设置?他应该基本上能够做任何管理员可以做的事情。主题,甚至可能是不断变化的主题。

5 个回复
最合适的回答,由SO网友:Bainternet 整理而成

可以使用role对象向编辑器角色添加功能,并从函数中添加\\u 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\'); 
看看list of capabilities 以及每一个都意味着什么。

SO网友:Sebastian Schmid

由于这是谷歌针对这个问题的第一次点击,我觉得这是一个更新的正确位置:

对我来说,我无法通过edit_theme_options. 然后我阅读了插件源代码,发现它实际上manage_options. 它成功了。

tl;dr(灾难恢复):

$role_object = get_role( \'editor\' );
$role_object->add_cap( \'manage_options\' );
为我工作(2014年)

SO网友:Chris

他们不需要“编辑主题”功能吗?您可以使用JustinTadlocks插件http://wordpress.org/extend/plugins/members/ 编辑与每个角色关联的功能。

SO网友:Travis Pflanz

另一个很棒的插件是用户角色编辑器(http://wordpress.org/extend/plugins/user-role-editor/)。它与成员类似,但更为基本和简单。此外,如果需要,开发人员会随时听取反馈并提供帮助。

SO网友:Bryan Willis

这很古老,但有一种新的方法可以实现这一点:

add_filter( \'user_has_cap\',
function( $caps ) {
    if ( ! empty( $caps[\'edit_pages\'] ) )
        $caps[\'edit_theme_options\'] = true;
    return $caps;
} );

结束

相关推荐

Adding goodies to themes

如何在主题更新时向Arjuna-X等主题添加内容而不丢失?儿童主题是一种很好的方式,还是有其他选择?如果新版本的主题对我添加的功能具有本机支持,该怎么办?