如何不允许用户创建新标记,而允许他们使用现有标记

时间:2015-07-05 作者:Jorn Reuvers

我希望某个角色能够添加新标签,但其他用户应该只能够使用文本栏搜索现有标签。

我知道我可以在侧边栏中隐藏标签栏,但我不想这样。我只想让它说“对不起,这个标签不存在”或者当有人输入一个不存在的标签时。

有没有插件或函数可以帮我做到这一点?

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

你可以钩住pre_insert_term, 检查分类以及用户是否具有指定的角色,如下所示:

function disallow_insert_term($term, $taxonomy) {

    $user = wp_get_current_user();

    if ( $taxonomy === \'post_tag\' && in_array(\'somerole\', $user->roles) ) {

        return new WP_Error(
            \'disallow_insert_term\', 
            __(\'Your role does not have permission to add terms to this taxonomy\')
        );

    }

    return $term;

}

add_filter(\'pre_insert_term\', \'disallow_insert_term\', 10, 2);
这将阻止用户插入新术语,但允许他们搜索现有术语并将其添加到帖子中。

Beaware,当用户在post edit屏幕上输入一个不存在的术语名称,然后按enter键或单击add按钮,将该术语添加到DOM中,但此时该术语不会添加到数据库中,直到用户发布或更新帖子,此时该术语将被禁用。

结束

相关推荐

merge wordpress plugins

codecanyon-577696-security-ninja codecanyon-2927931-core-scanner-addon-for-security-ninja codecanyon-3686330-scheduled-scanner-addon-for-security-ninja codecanyon-8531381-events-logger-addon-for-security-ninja 所有四个都在zip文件中,所以我想创建一个zip,所以每