Функция remove_meta_box()
в WordPress предназначена для удаления метабоксов из экранов редактирования постов, страниц и произвольных типов записей. Это позволяет управлять интерфейсом админки, убирать ненужные элементы и улучшать пользовательский опыт.
remove_meta_box( string $id, string|array|WP_Screen $screen, string $context )
Параметры
$id
(string): Идентификатор метабокса, который следует удалить. Этот параметр должен соответствовать значению атрибутаid
HTML тега контейнера метабокса. Например:authordiv
– блок установки автора;categorydiv
– блок категорий;tagsdiv-post_tag
– блок меток;commentstatusdiv
– блок статуса комментирования;commentsdiv
– блок комментариев;formatdiv
– блок форматов записей;postcustom
– блок произвольных полей;postexcerpt
– блок цитаты;postimagediv
– блок картинки к посту.
$screen
(string|array|WP_Screen): Экран или тип записи, с которого нужно удалить метабокс. Например:- Для типов записей:
post
,page
,link
,attachment
, илиcustom_post_type
. - Для других страниц админки:
link
,comment
. - Можно указать несколько типов в массиве:
array('post', 'page')
(доступно с версии 4.4). - Если указать
null
, метабокс будет удаляться на любом экране (на текущем экране).
- Для типов записей:
$context
(string): Место размещения метабокса. Возможные значения:normal
– основная область;advanced
– расширенная область;side
– боковая панель.
Возвращаемое значение
Функция remove_meta_box()
не возвращает значения, то есть возвращает null
.
Пример 1: Удаление метабокса произвольных полей
Удалим метабокс произвольных полей на экране редактирования постов.
function remove_post_custom_fields() {
remove_meta_box('postcustom', 'post', 'normal');
}
add_action('add_meta_boxes', 'remove_post_custom_fields', 99);
Пример 2: Удаление нескольких метабоксов
Если необходимо удалить несколько метабоксов, таких как блоки комментариев и статуса комментариев на экране редактирования страниц, примените этот код:
add_action('add_meta_boxes', function() {
// Убираем метабоксы комментариев, статуса комментариев и автора со страниц
remove_meta_box('commentstatusdiv', 'page', 'normal'); // Статус комментариев
remove_meta_box('commentsdiv', 'page', 'normal'); // Комментарии
}, 20);
Пример 3: Удаление метабокса комментариев для типов записей без поддержки комментариев
Для удаления метабокса комментариев, если тип поста не поддерживает комментарии, используйте следующий подход:
add_action('add_meta_boxes', function($post_type) {
if (!post_type_supports($post_type, 'comments')) {
// Убираем метабокс комментариев, если тип записи не поддерживает комментарии
remove_meta_box('commentsdiv', $post_type, 'normal');
}
});
Пример 4: Удаление всех виджетов на экране панели инструментов
Если вы хотите удалить все виджеты на экране панели инструментов (Dashboard), вы можете использовать следующий код:
add_action('wp_dashboard_setup', function() {
// Удаляем виджеты с экрана панели инструментов
remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // Информация о сайте
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); // Недавние комментарии
remove_meta_box('dashboard_incoming_links', 'dashboard', 'normal'); // Входящие ссылки
remove_meta_box('dashboard_plugins', 'dashboard', 'normal'); // Плагины
remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // Быстрая публикация
remove_meta_box('dashboard_recent_drafts', 'dashboard', 'side'); // Недавние черновики
remove_meta_box('dashboard_primary', 'dashboard', 'side'); // Блог WordPress
remove_meta_box('dashboard_secondary', 'dashboard', 'side'); // Другие новости WordPress
});
Пример 5: Удаление метабокса автора с кастомного типа записи
Если вам нужно удалить метабокс «Автор» на экране редактирования кастомного типа записи, попробуйте следующий код:
add_action('admin_head', function() {
// Убираем метабокс автора для кастомного типа записи
remove_meta_box('authordiv', 'my_custom_post_type', 'normal');
});
Заключение
Функция remove_meta_box()
предоставляет разработчикам гибкие возможности для настройки интерфейса администрирования в WordPress. От удаления стандартных метабоксов до управления виджетами на панели инструментов, правильное использование этой функции позволяет создавать более чистый и адаптированный интерфейс для ваших пользователей. Настройте свою админку с помощью приведенных примеров, чтобы сделать её более удобной и соответствующей вашим требованиям.