2026年11月12日

2026年11月12日

Metabox di WordPress che non compaiono: cause e soluzioni

Questo articolo è un'edizione localizzata dell'originale giapponese. Leggi l'originale in giapponese

Introduzione

Un metabox aggiunto da un plugin non compare nella schermata di modifica dell'articolo, un metabox che prima si vedeva è sparito all'improvviso, oppure dopo il passaggio all'editor a blocchi i metabox della barra laterale non vengono più mostrati. La scomparsa dei metabox dipende dalle impostazioni della schermata e dalla compatibilità con l'editor a blocchi.

Sintomi e cause

Le cause principali per cui un metabox non compare:

  • Nascosto in Impostazioni schermata: l'impostazione di visualizzazione dell'utente è su «nascosto»
  • Incompatibilità con l'editor a blocchi: serve l'impostazione __block_editor_compatible_meta_box
  • Problema di priorità dell'hook: il momento dell'hook add_meta_boxes non è quello giusto
  • Tipo di contenuto indicato male: il tipo di contenuto passato come argomento è sbagliato
  • Conflitto tra plugin: un altro plugin sta rimuovendo il metabox

Procedura di risoluzione

Passo 1: controlla le Impostazioni schermata

La causa più frequente è il metabox nascosto nelle Impostazioni schermata (Screen Options).

1. In alto a destra nella schermata di modifica dell'articolo, clicca su «Impostazioni schermata»

2. Verifica che la casella del metabox che vuoi vedere non sia deselezionata

3. Seleziona la casella e chiudi il pannello: il metabox compare

Passo 2: controlla l’implementazione di add_meta_box

// functions.php — aggiunge correttamente un metabox
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',       // ID (stringa univoca)
        'Informazioni personalizzate',           // Titolo
        'render_my_meta_box',   // Funzione di callback
        ['post', 'page'],       // Tipo di contenuto (si possono indicare più tipi in un array)
        'normal',               // Contesto: normal/side/advanced
        'high'                  // Priorità: 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) . '">';
}

Passo 3: mostra il metabox nell’editor a blocchi

Nell'editor a blocchi (Gutenberg) il supporto ai metabox è limitato.

// Mostra il metabox anche nell'editor a blocchi
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',
        'Informazioni personalizzate',
        'render_my_meta_box',
        'post',
        'normal',
        'high',
        // Dichiara esplicitamente la compatibilità con l'editor a blocchi
        ['__block_editor_compatible_meta_box' => true]
    );
});

Passo 4: disattiva l’editor a blocchi per fare una verifica

// functions.php — disattiva l'editor a blocchi per un tipo di contenuto specifico
add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
    if ($post_type === 'post') {
        return false;  // Passa all'editor classico
    }
    return $use_block_editor;
}, 10, 2);

In alternativa puoi installare il plugin «Classic Editor» e impostarlo dalla schermata di amministrazione.

Passo 5: fai il debug della visualizzazione dei metabox

// Verifica se il metabox è registrato
add_action('add_meta_boxes', function() {
    global $wp_meta_boxes;
    error_log('Meta boxes: ' . print_r(array_keys($wp_meta_boxes), true));
}, 999);  // Priorità 999: viene eseguito per ultimo

Passo 6: verifica i conflitti tra plugin

# Disattiva tutti i plugin con WP-CLI e controlla il metabox
wp plugin deactivate --all
# Apri la schermata di modifica nel browser e verifica se il metabox compare
# Se è tutto a posto, riattiva i plugin uno alla volta per individuare il responsabile
wp plugin activate plugin-name

Passo 7: reimposta i metadati dell’utente

Le impostazioni di Impostazioni schermata sono salvate nei metadati dell'utente.

// Reimposta le impostazioni di visualizzazione dei metabox di un utente specifico
delete_user_meta(get_current_user_id(), 'metaboxhidden_post');
delete_user_meta(get_current_user_id(), 'metaboxhidden_page');

Avvertenze

  • Le impostazioni di Impostazioni schermata sono salvate per ogni utente. Gli altri utenti devono configurarle ciascuno per conto proprio.
  • Nell'editor a blocchi nella barra laterale vengono mostrati solo i metabox con contesto side.
  • Se usi ACF (Advanced Custom Fields), serve l'impostazione del gruppo di campi compatibile con l'editor a blocchi.

Riepilogo

Se un metabox non compare, controlla prima le caselle di «Impostazioni schermata». Nell'editor a blocchi serve l'impostazione __block_editor_compatible_meta_box. Se il problema persiste, isola l'eventuale conflitto tra plugin. Articoli correlati: Se i campi personalizzati non si salvano, Se l'editor a blocchi va in crash

Domande su WordPress? Chi pubblica questo sito ha sede in Giappone e risponde in giapponese. Contatti (in giapponese)

お気軽にご相談ください

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