我不确定任何页面是否有很大不同,但我想知道如何从外观>菜单页面中删除元数据库,而不必进入wordpress核心文件并将其删除。我能做些什么来覆盖它,使它不会同时出现在页面和屏幕选项菜单上吗?
如何从菜单编辑器页面中删除元对象?
2 个回复
最合适的回答,由SO网友:birgire 整理而成
通过检查文件/wp-admin/nav-menus.php
我们可以看到这些元框:
渲染时使用:
<?php do_meta_boxes( \'nav-menus\', \'side\', null ); ?>
文件/wp-admin/includes/nav-menu.php
包含相应的add_meta_box()
调用,然后我们可以构造相关的删除代码:function custom_remove() {
remove_meta_box(\'nav-menu-theme-locations\', \'nav-menus\', \'side\');
remove_meta_box(\'add-custom-links\', \'nav-menus\', \'side\');
remove_meta_box(\'add-post\', \'nav-menus\', \'side\');
remove_meta_box(\'add-page\', \'nav-menus\', \'side\');
remove_meta_box(\'add-category\', \'nav-menus\', \'side\');
}
add_action(\'admin_head-nav-menus.php\', \'custom_remove\');
例如,我们可以使用admin_head-nav-menus.php
操作,因为它是在呈现这些元框之前调用的。如果您有一个自定义的帖子类型(或自定义分类法),那么您可以使用
remove_meta_box( \'add-xxx\' , \'nav-menus\' , \'side\' );
在哪里xxx
是对应的名称。您可以进一步查看这些功能wp_nav_menu_setup()
, wp_nav_menu_post_type_meta_boxes()
和wp_nav_menu_taxonomy_meta_boxes()
查看如何添加元框。
SO网友:realtebo
if (!is_admin()) return;
// See https://developer.wordpress.org/reference/functions/wp_nav_menu_taxonomy_meta_boxes/
// $taxonomy_object is of type WP_Post_Type
add_filter(\'nav_menu_meta_box_object\', function ($taxonomy_object) {
if (in_array($taxonomy_object->name, [\'page\', \'post\', \'category\'] )) {
return null;
}
return $taxonomy_object;
结束