如何移除WordPress分类法“Menu group”中的内置“Description”字段
嘿,我刚好处理过类似的需求,给你两种靠谱的方法来搞定这个问题,你可以根据自己的场景选择:
方法一:直接移除后台编辑页面的描述Meta Box
如果这个“Menu group”是已经存在的分类法(不管是你自己注册的还是第三方插件添加的),你可以用remove_meta_box函数把描述框删掉。只需要把下面的代码加到主题的functions.php文件里,或者自定义插件中:
add_action('admin_menu', 'remove_menu_group_description_box'); function remove_menu_group_description_box() { // 第二个参数是你的分类法slug,不确定的话可以看后台编辑页面URL里的taxonomy=xxx参数,xxx就是slug remove_meta_box('tag-description', 'menu_group', 'normal'); // 如果你的分类法是层级结构(类似WordPress自带的“分类”而非“标签”),换成下面这行: // remove_meta_box('menu_groupdiv', 'menu_group', 'normal'); }
简单解释:tag-description是非层级分类法(比如标签类)描述框的默认ID;如果是层级分类法,整个编辑Meta Box的ID是{分类法slug}div,你可以根据自己的分类法类型调整。
方法二:注册分类法时直接禁用描述字段
如果这个“Menu group”是你自己注册的自定义分类法,那最彻底的方式是在注册阶段就去掉描述相关设置。修改你注册分类法的代码,调整参数即可:
register_taxonomy('menu_group', '你的自定义文章类型slug', array( 'label' => 'Menu group', 'public' => true, 'hierarchical' => false, // 根据需求设置true或false // 关键:替换默认的Meta Box回调,只保留你需要的字段 'meta_box_cb' => function($post, $box) { // 这里只保留名称、Slug字段,去掉描述部分 ?> <div class="form-field term-name-wrap"> <label for="name"><?php _e('名称', '你的主题文本域'); ?></label> <input name="name" id="name" type="text" value="" size="40" aria-required="true"> <p><?php _e('名称会显示在你的网站上。', '你的主题文本域'); ?></p> </div> <div class="form-field term-slug-wrap"> <label for="slug"><?php _e('别名', '你的主题文本域'); ?></label> <input name="slug" id="slug" type="text" value="" size="40"> <p><?php _e('别名是名称的URL友好版本,通常为小写,仅包含字母、数字和连字符。', '你的主题文本域'); ?></p> </div> <!-- 在这里添加你自己的自定义字段 --> <?php }, // 其他参数... ));
这样注册出来的分类法编辑页面就不会有描述字段了,还能直接把你的自定义字段加进去,一步到位。
备注:内容来源于stack exchange,提问作者Emmsan
相关产品推荐
相关产品推荐

