将非管理员用户限制为现有标记的插件

时间:2012-04-02 作者:ltfishie

是否有一个插件可以限制非管理员用户只使用现有的标签?我本可以使用类别来实现这一点,但很难用大量(约1000个)标签来显示。

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

如果尚未创建标记,可以使用“批量添加标记”插件-http://wordpress.org/extend/plugins/bulk-add-tags/

然后,要限制除管理员以外的所有用户通过“new Post”屏幕添加新标签,请将此代码添加到主题的功能中。php文件:

//Hide Post Page Options from all except Administrator
if (!current_user_can(\'administrator\')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type=\\"text/css\\"> .jaxtag { display: none; }</style>";
print($hide_post_options);
}
add_action( \'admin_head\', \'hide_post_page_options\'  );
}
这只会对除管理员以外的所有用户隐藏用于输入新标签的框。

实际上,我使用这种方法来隐藏“New Post”页面的许多区域。只需在之前查找并添加元素的div类或id{ display: none; } 并用逗号分隔。如果您不熟悉Firefox,可以将Firebug插件与Firefox配合使用,或者只需右键单击并选择Chrome中的“Inspect Element”。

与许多插件相比,我更喜欢这种方法,因为它不会完全从Wordpress中删除功能,功能只是对不需要它的用户隐藏。

SO网友:murdaugh

这些解决方案都没有达到我所需要的效果,允许非管理员用户在帖子上使用现有标记,但不创建新标记。因此,我创建了以下解决方案,效果很好-尽管它没有向用户提供任何没有添加标签的反馈(它实际上只是立即撤消标签创建):

add_action(\'create_term\',\'undo_create_term\',10, 3);

function undo_create_term ($term_id, $tt_id, $taxonomy) {
    if ( !current_user_can( \'administrator\' ) )  {
        if($taxonomy == \'post_tag\') {
        wp_delete_term($term_id,$taxonomy);
        }
    }
}

SO网友:Travis Pflanz

你的问题让我很感兴趣。我可以看到这种情况有很大的用处,所以我会尽我所能帮助你找到答案。

这是另一个解决方案,不完全是您在对另一个答案的评论中提到的,但它确实让用户更容易找到他们想要的标签,因为标签是按字母顺序列出的。

管理标签功能插件-http://wordpress.org/extend/plugins/manage-tags-capability/

此外,应注意:此方法允许用户从所有可用标记中进行选择。我刚刚意识到,另一种方法只允许用户从“最常用”的标签中进行选择。

Wordpress在键入标签时已经可以自动预测,因此本质上,我们需要找到一种方法,允许用户键入他们想要的标签,但如果用户找不到标签,就不能添加新的标签。

SO网友:mayuxi

这就是我解决相同问题的方法(在主题的functions.php中):

/* Removing Tags for users */
if (is_admin()) :
function my_remove_meta_boxes() {
 if(!current_user_can(\'publish_posts\')) { 
   remove_meta_box(\'tagsdiv-post_tag\', \'post\', \'normal\');
 }
}
add_action( \'admin_menu\', \'my_remove_meta_boxes\' );
endif;
首先我们检查它是否是管理区域,然后我们检查用户是否可以发布帖子(通常是管理员和编辑),然后我们使用remove\\u meta\\u box执行我们的魔术。

结束

相关推荐

Remove slug in taxonomy url

只是想知道,如何从一些URL中删除slug。我正在使用一种称为“参展商”的自定义帖子类型,以及一些分类法来定义这些参展商(例如:特邀嘉宾、出版商等):现在我有这个:http://thisurl.com/exhibitor_filters/featured-guests/我想要这个:http://thisurl.com/featured-guests/我一直在玩弄wp中的重写/重击,但到目前为止还没有成功。建议?谢谢-Edit-有趣的是,现在我刚刚收到404个错误,涉及自定义帖子类型和分类术语。我要看看我能