仅适用于编辑者和管理员的插件功能

时间:2012-04-20 作者:Travis Pflanz

我以前从未真正编写过Wordpress插件,所以这是我第一次尝试。

基本上,该插件是针对多作者博客的,在这些博客中,文章作者必须提交他们的文章以供审查。编辑/管理员必须进来批准并发布/安排帖子。所有这些都很好,并内置在Wordpress中。

该插件增加了编辑/管理员对帖子内容发表评论的能力,而不是对改进帖子的建议。当编辑器将文章安排在未来的日期/时间发布时,这一点尤其有用。

编辑可以留下他们的评论,然后当帖子发布时,编辑的评论会自动发布。

我已经创建了一个自定义元框,其中有一个文本区域遵循此方法-Add A Meta Box In WordPressHow can I allow editors to leave comments on posts that have not yet been published?最后一件我想不出的事情是如何让这个插件只对编辑和管理员角色有效。我不想让帖子作者在帖子发布之前留下评论。

基本上,我不想要求已经读过这篇文章的编辑稍后回来发表评论。

编辑完整代码的粘贴栏-http://pastebin.com/yG9uqJ7q

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

感谢ericissocial为我指明了正确的方向。

我决定选择:

if(current_user_can( \'edit_others_posts\' )) {
    //add meta box
}
这样,任何自定义用户角色edit_others_posts 可以使用该功能。

SO网友:Eric Allen

您可以在加载metabox时检查用户角色。

//get user
$user_id = get_current_user_id();
$user = new WP_User($user_id);
//check user role
if($user->roles[0] == \'administrator\' || $user->roles[0] == \'editor\') {
     //add your metabox here
}
这样,metabox只会添加到供编辑和用户使用的帖子中,您可能希望将保存功能包装在类似的条件下,以便它不会在每次保存帖子时都尝试运行。

EDIT: 如果您计划在任何其他网站上使用此插件或将其发布给其他人使用,我还建议您为插件设置一个选项页,以便可以从当前用户角色列表中选择能够使用此插件的用户角色。

这样也可以考虑自定义用户角色。

结束