2026年11月12日

2026年11月12日

Metabox de WordPress que no aparece: causas y soluciones

Este artículo es una edición localizada del original en japonés. Leer el original en japonés

Introducción

Un metabox (meta box) añadido con un plugin no aparece en la pantalla de edición de entradas, un metabox que antes se veía ha desaparecido de repente, o al cambiar al editor de bloques ya no salen los metaboxes de la barra lateral. Que un metabox no se muestre tiene que ver con los ajustes de pantalla y con la compatibilidad con el editor de bloques.

Síntomas y causas

Principales causas por las que un metabox no se muestra:

  • Oculto en Opciones de pantalla: el ajuste de visualización de cada usuario está en «oculto»
  • Incompatibilidad con el editor de bloques: hace falta el ajuste __block_editor_compatible_meta_box
  • Problema de prioridad del hook: el momento en que se ejecuta el hook add_meta_boxes no es el adecuado
  • Tipo de contenido mal indicado: el tipo de contenido del tercer argumento es incorrecto
  • Conflicto entre plugins: otro plugin elimina el metabox

Pasos para solucionarlo

Paso 1: comprueba las Opciones de pantalla

La causa más frecuente es que el metabox esté oculto en las Opciones de pantalla.

1. Haz clic en «Opciones de pantalla» (Screen Options), arriba a la derecha de la pantalla de edición de entradas

2. Comprueba que no esté desmarcada la casilla del metabox que quieres ver

3. Marca la casilla y cierra el panel: el metabox aparecerá

Paso 2: revisa la implementación de add_meta_box

// functions.php — añade el metabox correctamente
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',       // ID (cadena única)
        'Información personalizada',   // Título
        'render_my_meta_box',   // Función de callback
        ['post', 'page'],       // Tipo de contenido (puedes indicar varios en una matriz)
        'normal',               // Contexto: normal/side/advanced
        'high'                  // Prioridad: 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) . '">';
}

Paso 3: muestra el metabox en el editor de bloques

El editor de bloques (Gutenberg) tiene un soporte limitado de los metaboxes.

// Muestra el metabox también en el editor de bloques
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',
        'Información personalizada',
        'render_my_meta_box',
        'post',
        'normal',
        'high',
        // Indica de forma explícita la compatibilidad con el editor de bloques
        ['__block_editor_compatible_meta_box' => true]
    );
});

Paso 4: desactiva el editor de bloques para comprobarlo

// functions.php — desactiva el editor de bloques en un tipo de contenido concreto
add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
    if ($post_type === 'post') {
        return false;  // Cambia al editor clásico
    }
    return $use_block_editor;
}, 10, 2);

También puedes instalar el plugin «Classic Editor» y configurarlo desde el administrador.

Paso 5: depura la visualización del metabox

// Comprueba si el metabox 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);  // Con prioridad 999 se ejecuta al final

Paso 6: comprueba los conflictos entre plugins

# Desactiva todos los plugins con WP-CLI y comprueba el metabox
wp plugin deactivate --all
# Abre la pantalla de edición de entradas en el navegador y comprueba si aparece el metabox
# Si todo va bien, activa los plugins uno a uno para identificar el culpable
wp plugin activate plugin-name

Paso 7: restablece los metadatos del usuario

Los ajustes de Opciones de pantalla se guardan en los metadatos del usuario.

// Restablece los ajustes de visualización de metaboxes de un usuario concreto
delete_user_meta(get_current_user_id(), 'metaboxhidden_post');
delete_user_meta(get_current_user_id(), 'metaboxhidden_page');

Precauciones

  • Los ajustes de Opciones de pantalla se guardan por usuario. Los demás usuarios tienen que configurarlos por separado.
  • En el editor de bloques, solo los metaboxes del contexto side se muestran en la barra lateral.
  • Si usas ACF (Advanced Custom Fields), necesitas una configuración del grupo de campos compatible con el editor de bloques.

Resumen

Si un metabox no se muestra, empieza por comprobar las casillas de «Opciones de pantalla». En el editor de bloques es necesario el ajuste __block_editor_compatible_meta_box. Si aun así no se resuelve, aísla el conflicto entre plugins. Artículos relacionados: Qué hacer si los campos personalizados no se guardan y Qué hacer si el editor de bloques se bloquea

¿Dudas sobre WordPress? Quien publica este sitio está en Japón y responde en japonés. Contacto (en japonés)

お気軽にご相談ください

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