WordPress如何禁止创建指定的标签?
WordPress禁止创建指定标签的实现方案
可以通过挂载pre_insert_term过滤器实现标签创建拦截,该钩子会在术语(标签属于WordPress内置的分类法术语)写入数据库之前触发,命中规则的标签会直接被拦截无法创建。
你可以将以下代码添加到当前主题的functions.php文件,或者自定义功能插件的代码文件中即可生效:
add_filter('pre_insert_term', 'block_forbidden_tags', 10, 2); function block_forbidden_tags($term, $taxonomy) { // 仅对标签分类法生效,不影响分类、其他自定义分类法 if ($taxonomy !== 'post_tag') { return $term; } // 禁用标签列表,可根据需求自行增减 $forbidden_tags = [ 'adult', 'bikini', 'enjoyment', 'fun', 'block', 'admin' ]; // 转小写后匹配,避免大小写不同导致的规则绕过 $input_tag = strtolower(trim($term)); if (in_array($input_tag, $forbidden_tags)) { // 返回错误,阻止标签创建 return new WP_Error( 'forbidden_tag', sprintf('无法创建标签「%s」,该词汇属于禁用关键词', $term) ); } return $term; }
注意事项
- 上述代码仅会拦截新创建的标签,已经存在于站点标签库中的禁用标签不会被自动删除,你可以手动进入后台「文章-标签」页面批量删除对应词汇
- 匹配逻辑不区分大小写,比如输入
ADULT、Adult都会命中拦截规则 - 如需调整禁用词,直接修改
$forbidden_tags数组内的内容即可
内容的提问来源于stack exchange,提问作者Arshpreet Singh
相关产品推荐
相关产品推荐

