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_boxesnon è 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)