Фильтр nav_menu_meta_box_object
в WordPress предоставляет возможность управлять метабоксами, которые отображаются на странице настройки меню в админке. Он позволяет изменять или скрывать определенные метабоксы, которые используются для добавления пунктов меню, таких как «Записи», «Страницы» или таксономии, например, «Рубрики».
apply_filters( 'nav_menu_meta_box_object', WP_Post_Type|false $post_type );
Этот фильтр применяется к каждому метабоксу, который добавляется на страницу редактирования меню в административной панели WordPress. Он принимает объект типа WP_Post_Type
(для метабоксов с типами записей) или WP_Taxonomy
(для метабоксов с таксономиями), что позволяет менять его свойства. Если вернуть false
, метабокс для данного объекта не будет добавлен.
Параметры
$post_type
(WP_Post_Type|false): Текущий объект, для которого добавляется метабокс. Если возвращается ложное значение, метабокс не будет добавлен.
Пример 1: Изменение заголовка метабокса «Рубрики»
В этом примере мы меняем заголовок метабокса «Рубрики» на «Категории блога». Это полезно, если требуется уточнить назначение метабокса или изменить стандартное отображение.
add_filter( 'nav_menu_meta_box_object', 'change_category_meta_box_title' );
function change_category_meta_box_title( $obj ) {
if ( 'category' === $obj->name ) {
$obj->labels->name = 'Категории блога';
}
return $obj;
}
Пример 2: Скрытие метабокса для «Формата» записи
Если вы хотите удалить метабокс «Формат», чтобы пользователи не добавляли форматы записей в меню, вы можете установить для него значение false
.
add_filter( 'nav_menu_meta_box_object', 'remove_post_format_meta_box' );
function remove_post_format_meta_box( $obj ) {
if ( 'post_format' === $obj->name ) {
return false;
}
return $obj;
}
Пример 3: Изменение описания для метабокса «Страницы»
В этом примере мы добавляем пользовательское описание для метабокса «Страницы». Это может быть полезно, чтобы помочь администраторам лучше понять, как работать с этим типом контента.
add_filter( 'nav_menu_meta_box_object', 'customize_page_meta_box_description' );
function customize_page_meta_box_description( $obj ) {
if ( 'page' === $obj->name ) {
$obj->description = 'Добавьте страницы, которые должны отображаться в меню сайта.';
}
return $obj;
}
Пример 4: Отключение метабокса «Метки» для меню
Этот пример отключает метабокс «Метки» на странице редактирования меню. Это может быть полезно, если метки не используются в меню сайта.
add_filter( 'nav_menu_meta_box_object', 'disable_tags_meta_box_for_menu' );
function disable_tags_meta_box_for_menu( $obj ) {
if ( 'post_tag' === $obj->name ) {
return false; // Отключаем метабокс для "Метки"
}
return $obj;
}
Пример 5: Переименование метабокса для произвольного типа записи «portfolio»
Этот код изменяет название метабокса для кастомного типа записи portfolio
. Новый заголовок «Наши проекты» добавит ясности на странице настройки меню.
add_filter( 'nav_menu_meta_box_object', 'rename_portfolio_meta_box' );
function rename_portfolio_meta_box( $obj ) {
if ( 'portfolio' === $obj->name ) {
$obj->labels->name = 'Наши проекты';
}
return $obj;
}
Заключение
Хук nav_menu_meta_box_object
— это полезный инструмент для управления отображением метабоксов в разделе настройки меню WordPress. Он позволяет адаптировать интерфейс под конкретные нужды, меняя названия, описания и наличие метабоксов для различных типов контента.