如何从菜单编辑器页面中删除元对象?

时间:2013-05-01 作者:user1632018

我不确定任何页面是否有很大不同,但我想知道如何从外观>菜单页面中删除元数据库,而不必进入wordpress核心文件并将其删除。我能做些什么来覆盖它,使它不会同时出现在页面和屏幕选项菜单上吗?

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

通过检查文件/wp-admin/nav-menus.php 我们可以看到这些元框:

metaboxes

渲染时使用:

<?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;
结束

相关推荐

WooCommerce如何在Content-Product.php中获取猫ID

我安装了woocommerce插件。我的页面url如下http://sitename.com/product-category/products-and-service/servicecat1/产品和服务是主要类别ServiceCat1是子类别在此页面中显示产品列表。我想获取子类别(即servicecat1)的类别id我使用了以下代码 $q_cat = get_query_var(\'cat\'); 以及 $term_list = wp_get_post_terms(\'service