Метабоксы — это важный элемент интерфейса WordPress, которые отображаются на страницах редактирования постов, страниц и других типов записей. Они помогают организовать ввод данных, но со временем в админке может появиться множество метабоксов, которые не используются или мешают удобству работы. Удаление неиспользуемых метабоксов помогает оптимизировать интерфейс, ускорить загрузку страниц редактирования и сделать работу с сайтом более приятной.
Что такое метабоксы и зачем их удалять
Метабоксы — это боковые панели или блоки с настройками и дополнительными полями на страницах редактирования контента в WordPress. Они могут добавляться ядром, темами и плагинами. Часто при использовании множества плагинов в админке появляется много метабоксов, которые не нужны или дублируют функционал.
Удаление неиспользуемых метабоксов позволяет:
- Сделать интерфейс более чистым и удобным для редакторов;
- Снизить нагрузку на админку и ускорить загрузку страниц;
- Избежать ошибок или конфликтов между плагинами, которые добавляют свои метабоксы;
- Упростить обучение новых пользователей сайта.
Подход к удалению метабоксов зависит от того, кто их добавил — ядро WordPress, тема или плагины.
Удаляем метабоксы ядра WordPress
Ядро WordPress добавляет несколько стандартных метабоксов, например, «Обсуждение», «Атрибуты страницы», «Формат записи», «Изображение записи» и др. Чтобы убрать ненужные из них, можно использовать функцию remove_meta_box.
Пример удаления метабокса «Обсуждение» на странице редактирования постов:
function wpclean_remove_core_metaboxes() {
remove_meta_box( 'commentstatusdiv', 'post', 'normal' ); // Обсуждение
remove_meta_box( 'postimagediv', 'post', 'side' ); // Изображение записи
remove_meta_box( 'authordiv', 'post', 'normal' ); // Автор
}
add_action( 'add_meta_boxes', 'wpclean_remove_core_metaboxes', 99 );
Аргументы функции:
commentstatusdiv— ID метабокса;post— тип записи, на которой удаляем метабокс;normalилиside— контекст расположения метабокса.
Чтобы узнать ID метабокса, можно использовать плагин Show Current Template или посмотреть исходный код страницы.
Удаляем метабоксы, добавленные плагинами
Плагины часто добавляют свои метабоксы, которые не всегда нужны. Для удаления таких метабоксов нужно знать их ID. Обычно ID метабокса указывается в документации плагина или можно найти через инспектор браузера.
Пример удаления метабокса плагина SEO (например, Yoast SEO):
function wpclean_remove_plugin_metaboxes() {
remove_meta_box( 'wpseo_meta', 'post', 'normal' );
remove_meta_box( 'wpseo_meta', 'page', 'normal' );
}
add_action( 'add_meta_boxes', 'wpclean_remove_plugin_metaboxes', 100 );
Если нужно удалить все метабоксы плагина, можно использовать отладочные инструменты или фильтры плагина, если они доступны.
Удаление метабоксов через фильтры плагинов
Некоторые плагины предоставляют фильтры для управления своими метабоксами. Например, плагин Clearfy Pro позволяет отключать метабоксы SEO и аналитики прямо из настроек, что упрощает задачу.
Если плагин не предоставляет такие фильтры, остается только удалять метабоксы через remove_meta_box.
Удаление кастомных метабоксов, добавленных темой или разработчиками
Темы и кастомные решения часто добавляют метабоксы для своих настроек или дополнительных полей. Чтобы удалить ненужные, нужно знать их ID и тип записи. Чаще всего такие метабоксы добавляются с помощью функции add_meta_box в файлах темы.
Пример удаления кастомного метабокса с ID wpclean_custom_metabox:
function wpclean_remove_custom_metaboxes() {
remove_meta_box( 'wpclean_custom_metabox', 'post', 'side' );
}
add_action( 'add_meta_boxes', 'wpclean_remove_custom_metaboxes', 99 );
Если метабоксов много и они добавляются динамически, можно отфильтровать все метабоксы через глобальный массив $wp_meta_boxes и удалить ненужные по ID.
Пример фильтрации и удаления метабоксов по префиксу ID
function wpclean_filter_metaboxes() {
global $wp_meta_boxes;
// Проходим по всем типам записей
foreach ( $wp_meta_boxes as $post_type => $contexts ) {
foreach ( $contexts as $context => $priorities ) {
foreach ( $priorities as $priority => $boxes ) {
foreach ( $boxes as $id => $metabox ) {
// Удаляем метабоксы с ID, начинающимся на 'wpclean_'
if ( strpos( $id, 'wpclean_' ) === 0 ) {
unset( $wp_meta_boxes[ $post_type ][ $context ][ $priority ][ $id ] );
}
}
}
}
}
}
add_action( 'do_meta_boxes', 'wpclean_filter_metaboxes', 100 );
Практические рекомендации по оптимизации метабоксов
Чтобы админка оставалась удобной и быстрой, придерживайтесь следующих советов:
- Удаляйте метабоксы, которые не используются редакторами и администраторами;
- Оставляйте только необходимые поля, объединяйте похожие метабоксы в один при возможности;
- Используйте плагин Clearfy Pro для автоматической оптимизации и отключения ненужных элементов;
- Тестируйте изменения на тестовом сайте, чтобы не удалить важные метабоксы;
- Обучайте редакторов работать с кастомными метабоксами, чтобы они понимали, зачем нужны те или иные блоки.
Выводы
Удаление неиспользуемых метабоксов — эффективный способ оптимизации админки WordPress. Правильное управление метабоксами улучшает UX для пользователей, ускоряет работу с сайтом и снижает нагрузку. Используйте remove_meta_box для ядра и плагинов, фильтруйте глобальный массив метабоксов для кастомных решений. Для комплексной оптимизации можно применять плагины, например, Clearfy Pro, с удобным интерфейсом.