2026年11月12日

2026年11月12日

Nie widać metaboksów w WordPress: jak to naprawić

Ten artykuł jest zlokalizowaną wersją japońskiego oryginału. Przeczytaj japoński oryginał

Wstęp

Metaboks dodany przez wtyczkę nie pojawia się na ekranie edycji wpisu, metaboks, który wcześniej był widoczny, nagle zniknął albo po przejściu na edytor blokowy w pasku bocznym nie ma już metaboksów. Za ukrytymi metaboksami stoją zwykle ustawienia ekranu i zgodność z edytorem blokowym.

Objawy i przyczyny

Główne przyczyny braku metaboksu:

  • Ukrycie w opcjach ekranu: ustawienie widoczności zapisane dla danego użytkownika jest ustawione na „ukryty"
  • Niezgodność z edytorem blokowym: potrzebne jest ustawienie __block_editor_compatible_meta_box
  • Problem z priorytetem haka: moment wywołania haka add_meta_boxes jest nieodpowiedni
  • Błędnie podany typ wpisu: typ wpisu w trzecim argumencie jest nieprawidłowy
  • Konflikt wtyczek: inna wtyczka usuwa metaboks

Kroki rozwiązania

Krok 1: sprawdź opcje ekranu

Najczęstszą przyczyną jest ukrycie metaboksu w opcjach ekranu.

1. Kliknij „Opcje ekranu" (Screen Options) w prawym górnym rogu ekranu edycji wpisu

2. Sprawdź, czy nie odznaczono metaboksu, który chcesz wyświetlać

3. Zaznacz go i zamknij panel, a metaboks się pojawi

Krok 2: sprawdź implementację add_meta_box

// functions.php — prawidłowe dodanie metaboksu
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',       // ID (unikalny ciąg znaków)
        'Informacje własne',    // Tytuł
        'render_my_meta_box',   // Funkcja zwrotna
        ['post', 'page'],       // Typ wpisu (można podać kilka w tablicy)
        'normal',               // Kontekst: normal/side/advanced
        'high'                  // Priorytet: 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) . '">';
}

Krok 3: wyświetl metaboks w edytorze blokowym

Edytor blokowy (Gutenberg) obsługuje metaboksy w ograniczonym zakresie.

// Wyświetl metaboks także w edytorze blokowym
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',
        'Informacje własne',
        'render_my_meta_box',
        'post',
        'normal',
        'high',
        // Jawnie zadeklaruj zgodność z edytorem blokowym
        ['__block_editor_compatible_meta_box' => true]
    );
});

Krok 4: wyłącz edytor blokowy, aby to sprawdzić

// functions.php — wyłącz edytor blokowy dla wybranego typu wpisu
add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
    if ($post_type === 'post') {
        return false;  // Przełącz na edytor klasyczny
    }
    return $use_block_editor;
}, 10, 2);

Możesz też zainstalować wtyczkę „Classic Editor" i ustawić to w panelu administracyjnym.

Krok 5: zdebuguj wyświetlanie metaboksu

// Sprawdź, czy metaboks jest zarejestrowany
add_action('add_meta_boxes', function() {
    global $wp_meta_boxes;
    error_log('Meta boxes: ' . print_r(array_keys($wp_meta_boxes), true));
}, 999);  // Priorytet 999, czyli wykonanie na końcu

Krok 6: sprawdź konflikt wtyczek

# Wyłącz wszystkie wtyczki przez WP-CLI i sprawdź metaboksy
wp plugin deactivate --all
# Otwórz ekran edycji wpisu w przeglądarce i sprawdź, czy metaboks się pojawia
# Jeśli problem zniknął, włączaj wtyczki po jednej, aby znaleźć winowajcę
wp plugin activate plugin-name

Krok 7: zresetuj meta użytkownika

Ustawienia opcji ekranu są zapisane w meta użytkownika.

// Zresetuj ustawienia widoczności metaboksów wybranego użytkownika
delete_user_meta(get_current_user_id(), 'metaboxhidden_post');
delete_user_meta(get_current_user_id(), 'metaboxhidden_page');

Uwagi

  • Ustawienia opcji ekranu są zapisywane osobno dla każdego użytkownika. Inni użytkownicy muszą ustawić je u siebie.
  • W edytorze blokowym w pasku bocznym wyświetlają się tylko metaboksy w kontekście side.
  • Jeśli używasz ACF (Advanced Custom Fields), potrzebne jest takie ustawienie grupy pól, które obsługuje edytor blokowy.

Podsumowanie

Gdy metaboks się nie wyświetla, najpierw sprawdź zaznaczenia w „Opcjach ekranu". W edytorze blokowym potrzebne jest ustawienie __block_editor_compatible_meta_box. Jeśli to nie pomoże, wyizoluj konflikt wtyczek. Powiązane artykuły: Gdy nie można zapisać pola własnego, Gdy edytor blokowy się zawiesza

Pytania o WordPress? Wydawca tej witryny ma siedzibę w Japonii i odpowiada po japońsku. Kontakt (po japońsku)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲