Функция remove_meta_box() в WordPress предназначена для удаления метабоксов из экранов редактирования постов, страниц и произвольных типов записей. Это позволяет управлять интерфейсом админки, убирать ненужные элементы и улучшать пользовательский опыт.
remove_meta_box( string $id, string|array|WP_Screen $screen, string $context )
Параметры
$id(string): Идентификатор метабокса, который следует удалить. Этот параметр должен соответствовать значению атрибутаidHTML тега контейнера метабокса. Например: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. От удаления стандартных метабоксов до управления виджетами на панели инструментов, правильное использование этой функции позволяет создавать более чистый и адаптированный интерфейс для ваших пользователей. Настройте свою админку с помощью приведенных примеров, чтобы сделать её более удобной и соответствующей вашим требованиям.