2026年11月12日
2026年11月12日
Не відображаються метабокси WordPress: причини та рішення
Ця стаття — локалізована версія японського оригіналу. Читати японський оригінал
Вступ
Метабокс, доданий плагіном, не з’являється на екрані редагування запису; метабокс, який раніше був видимий, раптом зник; після переходу на редактор блоків метабокси в бічній панелі більше не показуються. До зникнення метабоксів причетні налаштування екрана та сумісність із редактором блоків.
Симптоми та причини
Основні причини, через які метабокс не відображається:
- Приховано в параметрах екрана: для користувача в налаштуваннях відображення вказано «приховати»
- Несумісність із редактором блоків: потрібне налаштування
__block_editor_compatible_meta_box - Проблема з пріоритетом хука: момент спрацювання хука
add_meta_boxesне збігається - Помилка у вказівці типу запису: тип запису в третьому аргументі вказано неправильно
- Конфлікт плагінів: інший плагін видаляє метабокс
Порядок розв’язання
Крок 1. Перевірте параметри екрана
Найчастіша причина — приховування в параметрах екрана.
1. Угорі праворуч на екрані редагування запису натисніть «Параметри екрана» (Screen Options)
2. Перевірте, чи не знято позначку з метабокса, який потрібно показати
3. Поставте позначку й закрийте панель — метабокс з’явиться
Крок 2. Перевірте реалізацію add_meta_box
// functions.php — правильне додавання метабокса
add_action('add_meta_boxes', function() {
add_meta_box(
'my_meta_box_id', // ID (унікальний рядок)
'Додаткова інформація', // Заголовок
'render_my_meta_box', // Функція зворотного виклику
['post', 'page'], // Тип запису (кілька можна вказати масивом)
'normal', // Контекст: normal/side/advanced
'high' // Пріоритет: high/core/default/low
);
});
function render_my_meta_box($post) {
wp_nonce_field('my_meta_nonce_action', 'my_meta_nonce');
$value = get_post_meta($post->ID, '_my_field', true);
echo '<input type="text" name="my_field" value="' . esc_attr($value) . '">';
}
Крок 3. Покажіть метабокс у редакторі блоків
У редакторі блоків (Gutenberg) підтримка метабоксів обмежена.
// Показувати метабокс і в редакторі блоків
add_action('add_meta_boxes', function() {
add_meta_box(
'my_meta_box_id',
'Додаткова інформація',
'render_my_meta_box',
'post',
'normal',
'high',
// Явно вказати сумісність із редактором блоків
['__block_editor_compatible_meta_box' => true]
);
});
Крок 4. Вимкніть редактор блоків і перевірте
// functions.php — вимкнути редактор блоків для певного типу запису
add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
if ($post_type === 'post') {
return false; // Перейти на класичний редактор
}
return $use_block_editor;
}, 10, 2);
Також можна встановити плагін «Classic Editor» і налаштувати його в адмінці.
Крок 5. Налагодьте відображення метабокса
// Перевірити, чи зареєстровано метабокси
add_action('add_meta_boxes', function() {
global $wp_meta_boxes;
error_log('Meta boxes: ' . print_r(array_keys($wp_meta_boxes), true));
}, 999); // Пріоритет 999 — виконується останнім
Крок 6. Перевірте конфлікти плагінів
# Вимкнути всі плагіни через WP-CLI і перевірити метабокси
wp plugin deactivate --all
# Відкрити в браузері екран редагування запису й перевірити, чи з’явився метабокс
# Якщо все гаразд — вмикати плагіни по одному, щоб знайти винуватця
wp plugin activate plugin-name
Крок 7. Скиньте метадані користувача
Налаштування параметрів екрана зберігаються в метаданих користувача.
// Скинути налаштування відображення метабоксів для конкретного користувача
delete_user_meta(get_current_user_id(), 'metaboxhidden_post');
delete_user_meta(get_current_user_id(), 'metaboxhidden_page');
Важливі зауваження
- Налаштування параметрів екрана зберігаються окремо для кожного користувача. Іншим користувачам потрібно налаштувати їх самостійно.
- У редакторі блоків у бічній панелі показуються лише метабокси з контекстом
side. - Якщо ви користуєтеся ACF (Advanced Custom Fields), потрібне налаштування групи полів із підтримкою редактора блоків.
Підсумок
Якщо метабокс не відображається, спершу перевірте позначки в «Параметрах екрана». Для редактора блоків потрібне налаштування __block_editor_compatible_meta_box. Якщо це не допомогло, з’ясуйте, чи немає конфлікту плагінів. Пов’язані статті: Якщо власні поля не зберігаються, Якщо редактор блоків аварійно завершує роботу
Маєте запитання щодо WordPress? Видавець сайту перебуває в Японії й відповідає японською. Написати нам (японською)