如何向用户角色添加权能?

时间:2011-03-29 作者:Jonnybojangles

我正在管理Wordpress网络,希望将unfiltered\\u html用户功能添加到已经预定义的Admin用户角色中。在Wordpress的标准安装中,管理员帐户已经具有此功能,但在MU安装中,只有超级管理员才具有此功能。WordpressRoles and Capabilities.

如何从主题或插件中增加管理员角色?

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

您可以使用WP_Role

// get the the role object
$role_object = get_role( $role_name );

// add $cap capability to this role object
$role_object->add_cap( $capability_name );

// remove $cap capability from this role object
$role_object->remove_cap( $capability_name );
因此,为了解决您最初提出的关于如何让管理员在帖子内容中输入脚本和IFRAME标记的问题,您正在寻找“unfiltered\\u html”功能,这在多站点中仅授予超级管理员。

// get the the role object
$admin_role = get_role( \'administrator\' );
// grant the unfiltered_html capability
$admin_role->add_cap( \'unfiltered_html\', true );
也可以在函数中运行一次:

/* Roles & Capabilities */
add_role(\'professional\', \'Professional User\', array(
    \'read\' => true, // True allows that capability, False specifically removes it.
    \'edit_posts\' => true,
    \'delete_posts\' => true,
    //\'edit_published_posts\' => true,
    //\'publish_posts\' => true,
    //\'edit_files\' => true,
    \'upload_files\' => true //last in array needs no comma!
));

SO网友:Jonnybojangles

为了允许超级管理员或管理员以外的其他角色(取决于Wordpress安装是否为网络/MU实例)向帖子或评论添加未过滤的html,必须删除Wordpress的KSES过滤器。

检查用户是否具有特定功能。

if ( current_user_can( \'unfiltered_html\' ) ) { … }
如果是,则移除KSE

kses_remove_filters();
此功能已经包装在未过滤的mu中,允许管理员和编辑器添加未过滤的html。

结束

相关推荐