nav_menu_meta_box_object
Позволяет изменить объект, который используется для формирования метабокса в аккордеоне с выбором пунктов меню на странице создания меню в админке.

Это может быть объект класса:
- WP_Post_Type у метабоксов "Записи", "Страницы" и произвольных типов постов
- WP_Taxonomy у метабоксов "Рубрики", "Метки", "Формат" и произвольных таксономий.
Если вместо объекта возвратить ложное значение (false, null и так далее), то текущий метабокс добавлен в аккордеон не будет.
Пример содержания объекта у метабокса "Записи":
WP_Post_Type Object( [name] => post [label] => Записи [labels] => stdClass Object( [name] => Записи [singular_name] => Запись [add_new] => Добавить новую [add_new_item] => Добавить запись [edit_item] => Редактировать запись [new_item] => Новая запись [view_item] => Просмотреть запись [view_items] => Просмотр записей [search_items] => Поиск записей [not_found] => Записей не найдено. [not_found_in_trash] => Записей в корзине не найдено. [parent_item_colon] => [all_items] => Все записи [archives] => Архивы записей [attributes] => Свойства записи [insert_into_item] => Вставить в запись [uploaded_to_this_item] => Загруженные для этой записи [featured_image] => Изображение записи [set_featured_image] => Установить изображение записи [remove_featured_image] => Удалить изображение записи [use_featured_image] => Использовать как изображение записи [filter_items_list] => Фильтровать список записей [items_list_navigation] => Навигация по списку записей [items_list] => Список записей [menu_name] => Записи [name_admin_bar] => Запись ) [description] => [public] => 1 [hierarchical] => [exclude_from_search] => [publicly_queryable] => 1 [show_ui] => 1 [show_in_menu] => 1 [show_in_nav_menus] => 1 [show_in_admin_bar] => 1 [menu_position] => 5 [menu_icon] => [capability_type] => post [map_meta_cap] => 1 [register_meta_box_cb] => [taxonomies] => Array() [has_archive] => [query_var] => [can_export] => 1 [delete_with_user] => 1 [_builtin] => 1 [_edit_link] => post.php?post=%d [cap] => stdClass Object( [edit_post] => edit_post [read_post] => read_post [delete_post] => delete_post [edit_posts] => edit_posts [edit_others_posts] => edit_others_posts [publish_posts] => publish_posts [read_private_posts] => read_private_posts [read] => read [delete_posts] => delete_posts [delete_private_posts] => delete_private_posts [delete_published_posts] => delete_published_posts [delete_others_posts] => delete_others_posts [edit_private_posts] => edit_private_posts [edit_published_posts] => edit_published_posts [create_posts] => edit_posts ) [rewrite] => [show_in_rest] => 1 [rest_base] => posts [rest_controller_class] => WP_REST_Posts_Controller [_default_query] => Array( [post_status] => publish ) )
Использование
add_filter( 'nav_menu_meta_box_object', 'wp_kama_nav_menu_meta_box_object_filter' ); /** * Function for `nav_menu_meta_box_object` filter-hook. * * @param WP_Post_Type|false $post_type The current object to add a menu items meta box for. * * @return WP_Post_Type|false */ function wp_kama_nav_menu_meta_box_object_filter( $post_type ){ // filter... return $post_type; }
- $meta_box_object(объект)
- Текущей объект для формирования метабокса в аккордеоне.
Примеры
#1 Изменим заголовок метабокса "Рубрики".
add_filter( 'nav_menu_meta_box_object', function ( $obj ) { if ( 'category' == $obj->name ) { $obj->labels->name = 'Мои рубрики'; } return $obj; } );
#2 Удалим метабокс "Формат".
add_filter( 'nav_menu_meta_box_object', function ( $obj ) { if ( 'post_format' == $obj->name ) { $obj = null; } return $obj; } );
Список изменений
С версии 3.0.0 | Введена. |
Где вызывается хук
nav_menu_meta_box_object
nav_menu_meta_box_object
nav_menu_meta_box_object
wp-admin/includes/nav-menu.php 260
$post_type = apply_filters( 'nav_menu_meta_box_object', $post_type );
wp-admin/includes/ajax-actions.php 1884
$item = apply_filters( 'nav_menu_meta_box_object', $menus_meta_box_object );
wp-admin/includes/nav-menu.php 293
$tax = apply_filters( 'nav_menu_meta_box_object', $tax );
Где используется хук в WordPress
wp-admin/includes/admin-filters.php 53
add_filter( 'nav_menu_meta_box_object', '_wp_nav_menu_meta_box_object' );