2026年11月12日

2026年11月12日

Meta box não aparece no WordPress: como resolver

Este artigo é uma edição localizada do original em japonês. Ler o original em japonês

Introdução

O meta box adicionado por um plugin não aparece na tela de edição de posts, um meta box que antes estava visível desapareceu de repente, ou os meta boxes da barra lateral deixaram de aparecer depois de mudar para o editor de blocos. A ausência de um meta box tem a ver com as opções de tela e com a compatibilidade com o editor de blocos.

Sintomas e causas

Principais causas para um meta box não aparecer:

  • Oculto nas Opções da tela: a configuração de exibição de cada usuário está como "oculto"
  • Incompatibilidade com o editor de blocos: é preciso configurar __block_editor_compatible_meta_box
  • Problema de prioridade do hook: o momento do hook add_meta_boxes não está adequado
  • Tipo de post indicado errado: o tipo de post do terceiro argumento está incorreto
  • Conflito entre plugins: outro plugin está removendo o meta box

Passo a passo da solução

Passo 1: verifique as Opções da tela

A causa mais comum é a configuração de ocultação nas Opções da tela.

1. Clique em "Opções da tela" (Screen Options), no canto superior direito da tela de edição de posts

2. Verifique se a caixa do meta box que você quer exibir não está desmarcada

3. Marque a caixa e feche o painel; o meta box passa a aparecer

Passo 2: confira a implementação do add_meta_box

// functions.php: adiciona o meta box corretamente
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',       // ID (string única)
        'Informações extras',       // título
        'render_my_meta_box',   // função de callback
        ['post', 'page'],       // tipo de post (vários, em array)
        'normal',               // contexto: normal/side/advanced
        'high'                  // prioridade: 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: exiba o meta box no editor de blocos

O editor de blocos (Gutenberg) tem suporte limitado a meta boxes.

// Exibe o meta box também no editor de blocos
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',
        'Informações extras',
        'render_my_meta_box',
        'post',
        'normal',
        'high',
        // Indica explicitamente a compatibilidade com o editor de blocos
        ['__block_editor_compatible_meta_box' => true]
    );
});

Passo 4: desative o editor de blocos para testar

// functions.php: desativa o editor de blocos em um tipo de post específico
add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
    if ($post_type === 'post') {
        return false;  // muda para o editor clássico
    }
    return $use_block_editor;
}, 10, 2);

Também é possível instalar o plugin "Classic Editor" e configurá-lo pelo painel de administração.

Passo 5: depure a exibição do meta box

// Verifica se o meta box está registrado
add_action('add_meta_boxes', function() {
    global $wp_meta_boxes;
    error_log('Meta boxes: ' . print_r(array_keys($wp_meta_boxes), true));
}, 999);  // prioridade 999: executa por último

Passo 6: verifique conflitos entre plugins

# Desative todos os plugins com o WP-CLI e verifique o meta box
wp plugin deactivate --all
# Abra a tela de edição de posts no navegador e veja se o meta box aparece
# Se estiver tudo certo, reative os plugins um a um para identificar o culpado
wp plugin activate plugin-name

Passo 7: redefina o user meta

As configurações das Opções da tela ficam salvas no user meta.

// Redefine a exibição dos meta boxes de um usuário específico
delete_user_meta(get_current_user_id(), 'metaboxhidden_post');
delete_user_meta(get_current_user_id(), 'metaboxhidden_page');

Observações

  • As configurações das Opções da tela são salvas por usuário. Os outros usuários precisam configurar separadamente.
  • No editor de blocos, apenas os meta boxes do contexto side aparecem na barra lateral.
  • Se você usa o ACF (Advanced Custom Fields), é preciso configurar o grupo de campos para ser compatível com o editor de blocos.

Resumo

Se um meta box não aparecer, comece verificando as caixas das "Opções da tela". No editor de blocos, é preciso configurar __block_editor_compatible_meta_box. Se mesmo assim não resolver, isole um possível conflito entre plugins. Artigos relacionados: Quando o campo personalizado não é salvo, Quando o editor de blocos trava

Dúvidas sobre WordPress? Quem publica este site fica no Japão e responde em japonês. Contato (em japonês)

お気軽にご相談ください

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