如何移除文章编辑器中的「添加新分类」按钮(editor-post-taxonomies)
移除文章编辑器中的「添加新分类」链接方案
针对你用default_term创建分类后,需要禁用编辑器内添加/编辑分类的需求,这里提供几种靠谱的解决方法:
方法1:注册分类法时直接设置权限(最规范)
在注册分类法的register_taxonomy函数里,通过capabilities参数直接限制管理、编辑、删除分类的权限,只保留分配分类的权限。这样编辑器里的「添加新分类」链接会因为权限不足自动消失:
register_taxonomy( 'your_taxonomy_slug', // 替换成你的分类法slug 'post', // 关联的文章类型 array( // 其他已有参数... 'default_term' => array( 'name' => '默认分类', 'slug' => 'default-term' ), 'capabilities' => array( 'manage_terms' => 'do_not_allow', // 禁止管理分类 'edit_terms' => 'do_not_allow', // 禁止编辑分类 'delete_terms' => 'do_not_allow', // 禁止删除分类 'assign_terms' => 'edit_posts' // 保留分配分类的权限 ) ) );
方法2:通过权限钩子修改(无需修改注册代码)
如果已经完成分类法注册,没法修改注册代码,可以用user_has_cap钩子过滤权限,禁用相关操作:
add_filter('user_has_cap', 'restrict_custom_taxonomy_editing', 10, 3); function restrict_custom_taxonomy_editing($allcaps, $caps, $args) { $target_taxonomy = 'your_taxonomy_slug'; // 替换成你的分类法slug // 定义要限制的权限 $restricted_caps = [ "manage_{$target_taxonomy}", "edit_{$target_taxonomy}", "delete_{$target_taxonomy}" ]; foreach ($restricted_caps as $cap) { if (in_array($cap, $caps)) { $allcaps[$cap] = false; } } return $allcaps; }
方法3:前端CSS隐藏(快速临时方案)
如果只是需要快速隐藏链接,不需要严格的权限控制,可以通过后台头部注入CSS隐藏相关元素:
add_action('admin_head-post.php', 'hide_add_new_taxonomy_button'); add_action('admin_head-post-new.php', 'hide_add_new_taxonomy_button'); function hide_add_new_taxonomy_button() { // 替换成你的分类法对应的 metabox 类,比如默认分类是categorydiv,自定义分类法是{taxonomy}div $taxonomy_metabox_class = 'your-taxonomy-div'; ?> <style> .<?php echo $taxonomy_metabox_class; ?> .add-new-toggle, .<?php echo $taxonomy_metabox_class; ?> .add-new-tag { display: none !important; } </style> <?php }
注意:方法3只是前端隐藏,用户如果懂技术还是能通过URL访问分类管理页面,推荐优先用方法1或2从权限层面控制。
内容的提问来源于stack exchange,提问作者Isaievskyi_Serhii
相关产品推荐
相关产品推荐

