不完全可以。您可以重写内置PHP函数,但不能重写用户定义的函数。
然而,这个函数所做的只是定义一个元框。为什么不定义自己的?
一旦定义并添加了自己的元框,就可以调用remove_meta_box
要删除标准版本,请执行以下操作:
remove_meta_box( \'add-POSTTYPENAME\', \'nav-menus\', \'side\');
元框最初是使用循环为每个自定义帖子类型添加的。元框的ID定义为
add-{$id}
哪里
$id
是帖子类型的名称。因此,您可以通过执行类似的循环,或仅针对特定的帖子类型,删除所有帖子类型的此元框。这取决于你。
然后只需为所需的帖子类型添加自定义元框。以下是添加原始文件以供参考的函数:
function wp_nav_menu_post_type_meta_boxes() {
$post_types = get_post_types( array( \'show_in_nav_menus\' => true ), \'object\' );
if ( ! $post_types )
return;
foreach ( $post_types as $post_type ) {
$post_type = apply_filters( \'nav_menu_meta_box_object\', $post_type );
if ( $post_type ) {
$id = $post_type->name;
add_meta_box( "add-{$id}", $post_type->labels->name, \'wp_nav_menu_item_post_type_meta_box\', \'nav-menus\', \'side\', \'default\', $post_type );
}
}
}