Meta gastó $2.000 millones en lobby para verificación de edad: un usuario de Reddit reveló quién está detrás

Actualizado el 08/04/2026: Información ampliada sobre implementación de meta boxes en Gutenberg, métodos prácticos y soluciones a problemas comunes que afectan a desarrolladores y editores de contenido en WordPress.

En 30 segundos

  • Los meta boxes son campos personalizados que extienden la información base de un post en WordPress. En Gutenberg funcionan pero requieren configuración correcta.
  • El editor de bloques puede mostrar meta boxes clásicos, pero los que registres correctamente con register_post_meta() aparecen en el sidebar de forma nativa.
  • Existen tres enfoques: PHP puro con add_meta_box() (flexible pero tedioso), plugins especializados como Meta Box o ACF (cómodos pero agregan dependencias), o bloques personalizados con JavaScript.
  • Las áreas en blanco que ves en meta boxes suelen deberse a contexto incorrecto, campos deshabilitados en preferencias, o REST API no expuesta para esos campos.

Qué son los meta boxes en Gutenberg

Un meta box es un contenedor de campos personalizados que amplía la información que podés almacenar en un post, página o tipo de contenido personalizado. En lugar de limitarte al título, contenido y metadescripción que te da WordPress de serie, los meta boxes te dejan agregar datos arbitrarios: un autor alternativo, una fecha de evento, un código de producto, un slider de opinión — lo que necesites.

Meta es una empresa tecnológica multinacional fundada por Mark Zuckerberg, propietaria de plataformas de redes sociales y comunicación como Facebook, Instagram y WhatsApp. Se enfoca en el desarrollo de tecnología de redes sociales, publicidad digital y realidad virtual.

Antes de Gutenberg (hasta WordPress 4.9), los meta boxes aparecían debajo del editor como cajas cerradas, separadas visualmente. Eran funcionales pero incómodas. Con Gutenberg llegó el desafío de integrarlos al nuevo editor de bloques, que tiene otra arquitectura. WordPress resolvió esto parcialmente: los meta boxes clásicos siguen funcionando pero se segregan al final del editor, en una sección llamada “Advanced” (o aparecen en “Additional” settings si los registrás correctamente).

Hoy en Gutenberg hay dos flujos: el heredado (meta boxes que ocupan espacio en el editor) y el moderno (campos que viven en el sidebar como settings nativos). Los desarrolladores que creen nuevos meta boxes generalmente eligen el enfoque moderno porque se integra mejor con el flujo de edición.

Compatibilidad de meta boxes con el editor de bloques

Acá está lo que tenés que entender: Gutenberg es agnóstico con respecto a meta boxes. Si están registrados con register_post_meta() correctamente y marcados como "show_in_rest" => true, WordPress los expone en la API REST que usa el editor, y aparecen automáticamente en el panel de settings del sidebar. Si no están registrados así, Gutenberg no los ve, aunque hayan sido creados con add_meta_box().

El estado actual es este: WordPress soporta meta boxes en Gutenberg, pero el desarrollador tiene que hacer la tarea. No es magia. El contexto importa — si registrás un campo con contexto 'advanced' o 'normal', aparece en una sección colapsable del editor clásico, pero Gutenberg no lo reconoce de la misma forma. Lo que Gutenberg respeta es el contexto 'side' para sidebars.

Además, el atributo "show_in_rest" es obligatorio. Sin él, el campo existe en la base de datos pero es invisible para Gutenberg. Eso es lo que causa la mayoría de los “campos que no aparecen” que reportan los usuarios.

Tres formas de implementar meta boxes en Gutenberg

1. Enfoque clásico con PHP puro (add_meta_box + register_post_meta)

Es la opción más flexible y no requiere dependencias externas. Registrás un meta box con add_meta_box() en el hook add_meta_boxes, definís un callback que pinta el HTML del campo, y usás register_post_meta() para que Gutenberg lo reconozca. Luego guardás los datos con wp_update_post_meta() en el hook save_post.

Ventaja: control total. Desventaja: escribís mucho código boilerplate. Para un campo simple necesitás 30-50 líneas. Para 10 campos, necesitás estructura. Además, si querés que el campo aparezca en el sidebar de Gutenberg (no en una sección collapsable del editor antiguo), tenés que construir un bloque React personalizado, lo que implica build tools, webpack, y más complejidad. Sobre eso hablamos en automatización inteligente en WordPress.

2. Plugins especializados (Meta Box y ACF)

Meta Box (metabox.io) te deja definir campos en PHP y genera automáticamente la interfaz en Gutenberg. Registrás así:

$meta_box = array(
 'title' => 'Información Extra',
 'fields' => array(
 array( 'id' => 'color', 'type' => 'color' ),
 array( 'id' => 'stock', 'type' => 'number' ),
 )
);

Meta Box maneja todo: REST API, Gutenberg integration, sanitización, validación. Hay un addon llamado MB Blocks que convierte los meta boxes en bloques editables nativos sin tocar JavaScript.

ACF (Advanced Custom Fields) funciona similar pero tiene su propio eco de plugins. ACF Blocks te deja crear bloques Gutenberg sin escribir React. Ambos plugins abstraen la complejidad, pero agregan una dependencia. Si el plugin se descontinúa, importás el código.

Ventaja: poco código, mejor UX, mantenimiento delegado. Desventaja: dependencia externa, posible vendor lock-in, overhead en rendimiento si usás muchas addons.

3. Bloques personalizados con JavaScript/React

Es la opción “nativa” de Gutenberg. Registrás un bloque con registerBlockType() en JavaScript, construís el componente React en el editor, y definís cómo se guarda en la base de datos. Es la forma en que Gutenberg “prefiere” que lo hagas.

Ventaja: integración perfecta, full control del UX, sin plugins. Desventaja: requiere herramientas de build (@wordpress/scripts, webpack), aprendes React, y el ciclo de desarrollo es más lento. Ideal para temas o plugins que mantienen en serio, no para sitios chicos.

Problemas comunes y por qué aparecen áreas en blanco

El culpable típico es una combinación de tres cosas: contexto incorrecto, REST API deshabilitada, y/o campos deshabilitados en preferencias del editor. Acá están los 6 problemas más comunes:

1. Contexto registrado como ‘normal’ o ‘advanced’ en lugar de ‘side’

Si registrás un meta box con context => 'normal', aparece en una sección expandible debajo del contenido en el editor clásico. Gutenberg no lo reconoce como parte del sidebar. Resultado: ves una caja vacía en “Additional” settings o no la ves directamente en el panel de propiedades.

Solución: Usá context => 'side' al registrar con add_meta_box(), o asegurate de que register_post_meta() tenga "show_in_rest" => true.

2. REST API no expuesta para el meta field

register_post_meta() por defecto NO expone el campo en la REST API. Necesitás el parámetro "show_in_rest" => true. Sin eso, Gutenberg no puede leerlo ni guardarlo. Esto se conecta con lo que analizamos en soluciones locales sin dependencias externas.

Solución: Siempre agregá 'show_in_rest' => true a register_post_meta().

3. Campo deshabilitado en preferencias

Gutenberg tiene un panel “Preferencias” (esquina superior derecha, engranaje). Ahí podés desactivar campos individuales. Si desactivaste tu meta box accidentalmente, simplemente no aparece. Muchos usuarios piensan que está roto.

Solución: Abrí “Preferencias” → “Panels” y habilitá el campo.

4. Tipo de post no soporta custom fields

Algunos tipos de post (attachments, revisions) no soportan custom fields por defecto. Si registrás meta para un tipo que no está habilitado, no verás nada.

Solución: Hacé register_post_meta( 'post', 'tu_campo', array( 'show_in_rest' => true ) ) explícitamente para post types específicos.

5. Problemas de CSS o overflow

A veces el meta box se renderiza pero está oculto por CSS o overflow: hidden de un contenedor padre. Ves un área en blanco porque el campo está ahí pero no visible.

Solución: Abrí DevTools (F12), inspeccioná el HTML del meta box y verificá que no tenga display: none, visibility: hidden, o height: 0.

6. Conflicto con plugins que registran meta boxes incompatibles

Si tenés dos plugins registrando el mismo meta field con configuraciones conflictivas, Gutenberg puede mostrar una caja vacía o error. Pasa cuando un plugin usa add_meta_box() sin register_post_meta().

Solución: Desactivá plugins de a uno y verificá cuál causa el conflicto. Generalmente necesitás actualizar el plugin o elegir entre una opción u otra.

Paso a paso: crear un meta box funcional en Gutenberg

Acá está el código mínimo funcional. Lo pegás en tu tema o plugin, en un archivo que cargues en functions.php. Tema relacionado: proteger datos en control de versiones.

// Registrá el meta field
add_action( 'init', function() {
 register_post_meta( 'post', 'precio_especial', array(
 'type' => 'number',
 'single' => true,
 'show_in_rest' => true, // OBLIGATORIO para Gutenberg
 ) );
 
 register_post_meta( 'post', 'color_destacado', array(
 'type' => 'string',
 'single' => true,
 'show_in_rest' => true,
 ) );
} );

// Guardá los datos cuando se publica el post
add_action( 'save_post', function( $post_id ) {
 if ( ! isset( $_POST['precio_especial'] ) ) return;
 
 $value = sanitize_text_field( $_POST['precio_especial'] );
 update_post_meta( $post_id, 'precio_especial', $value );
} );

// Recuperá los datos en el frontend
$precio = get_post_meta( get_the_ID(), 'precio_especial', true );
echo "Precio especial: " . esc_html( $precio );

Con esto, los campos precio_especial y color_destacado aparecen automáticamente en el sidebar de Gutenberg bajo “Advanced” → “Custom fields”. Si querés que aparezcan con un nombre más amigable y un control de color nativo, usás un plugin como Meta Box.

La clave es 'show_in_rest' => true. Sin eso no funciona en Gutenberg.

Plugins especializados: Meta Box y ACF

Meta Box es la opción más orientada a Gutenberg. Su interfaz es minimalista pero potente. Definís los campos en PHP o en la interfaz admin, y eso se refleja instantáneamente en Gutenberg. El addon MB Blocks convierte meta boxes en bloques editables — lo que significa que cada instancia del campo es un bloque separado, reutilizable, con validación integrada.

Lo bueno de Meta Box: 1) Poco código, 2) excelente documentación de Gutenberg, 3) campos condicionales (mostrar/esconder campos según el valor de otro), 4) soporta tipos complejos (select, checkbox, repeater). Lo malo: plugin adicional, require PHP 5.6+, y los campos repeater en Gutenberg a veces tienen UX raros.

ACF (Advanced Custom Fields) es más popular en agencias. Tiene una interfaz visual más amigable para no-programadores. ACF Pro (pago) incluye ACF Blocks que permite crear bloques sin tocar JavaScript. Lo bueno: extenso ecosistema, muy documentado, mucha gente lo conoce. Lo malo: versión Pro es cara ($100/año), el plugin es “pesado” en recursos, y puede crear dependencias fuertes en el código. Lo complementamos en últimas noticias tecnológicas.

Para un sitio pequeño o un tema propio, Meta Box es la opción más ágil. Para agencias que construyen sitios para clientes, ACF Pro es más seguro porque muchos clientes ya lo esperan.

Debugging: cómo identificar por qué no ves tus meta boxes

Cuando un meta box desaparece o aparece en blanco, usá este checklist en orden:

1. Verificá que el contexto sea correcto

Si registraste con add_meta_box( 'mi_box', 'Title', 'callback', 'post', 'normal', 'default' ), el contexto es 'normal'. Cambialó a 'side' para que Gutenberg lo reconozca.

2. Comprobá show_in_rest

Abrí la consola JavaScript (F12) y ejecutá:

fetch( '/wp-json/wp/v2/posts' ).then( r => r.json() ).then( posts => console.log( posts.meta ) )

Si tu campo aparece en el objeto meta, Gutenberg lo ve. Si no aparece, revisá que register_post_meta() tenga 'show_in_rest' => true.

3. Desactivá plugins uno por uno

Desactivá plugins de campos personalizados (ACF, JetEngine, Pods, etc.). Si el campo aparece, hay conflicto. Reactivá plugins hasta encontrar el culpable.

4. Habilitá el campo en Preferencias

Esquina superior derecha de Gutenberg, engranaje → Preferencias. Buscá tu campo en “Advanced” y asegurate de que esté habilitado. Relacionado: optimizar procesos de desarrollo.

Si querés profundizar en esto, tenemos un artículo sobre Help Request: Meta Boxes area in Gutenberg Blank.

Este tema se conecta con Help Request: Meta Boxes area in Gutenberg Blank, donde profundizamos al respecto.

Esto se conecta con Help Request: Meta Boxes area in Gutenberg Blank, donde cubrimos el tema en detalle.

Si querés profundizar, acá tenemos un artículo sobre Help Request: Meta Boxes area in Gutenberg Blank.

5. Revisá permisos del usuario

Algunos roles de usuario no pueden ver ciertos campos. Probá con un usuario Admin.

6. Verificá que el tipo de post soporte custom fields

En register_post_type(), asegurate que 'custom-fields' => true.

Tabla comparativa: manual vs plugins especializados

AspectoPHP puro + add_meta_boxMeta Box (plugin)ACF Pro (plugin)
Líneas de código por campo30-503-5Interfaz visual (0 código)
Curva de aprendizajeMedia (WordPress basics)Baja (PHP simple)Muy baja (interfaz)
Integración GutenbergManual (React/JS)Automática (MB Blocks)Automática (ACF Blocks)
Validación y sanitizaciónManualIntegradaIntegrada
Campos condicionalesCódigo JavaScriptUI point-and-clickUI point-and-click (Pro)
PrecioGratisFreemium ($99/año Pro)Gratis (ACF); $99/año Pro
Mejor paraTemas/plugins propiosSitios chicos, temas personalizadosAgencias, sitios de clientes
meta boxes gutenberg wordpress diagrama explicativo

Preguntas Frecuentes

¿Cómo agregar meta boxes en Gutenberg sin plugins?

Usá register_post_meta() con 'show_in_rest' => true en el hook init. Los campos aparecen automáticamente en el sidebar de Gutenberg bajo “Advanced”. Para un control visual mejorado, necesitarías un bloque personalizado en JavaScript, lo que requiere @wordpress/scripts o herramientas similares.

¿Por qué no se ven mis campos personalizados en Gutenberg?

Las causas más comunes: 1) 'show_in_rest' no está en true, 2) el campo está deshabilitado en Preferencias, 3) estás usando add_meta_box() sin register_post_meta(), 4) el contexto es incorrecto. Verificá estas cuatro cosas primero. Si persiste, usá DevTools para inspeccionar la API REST.

¿Meta Box es mejor que ACF para Gutenberg?

Depende del caso. Meta Box es más ligero, más orientado a Gutenberg, y más barato. ACF es más popular, tiene más documentación comunitaria, y es mejor si ya lo usas en el proyecto. Para algo nuevo, Meta Box es la opción más moderna.

¿Necesito un plugin para meta boxes en Gutenberg o puedo hacerlo con PHP?

Podés hacerlo con PHP puro, pero el nivel de comodidad depende de cuántos campos necesites. Un campo: PHP puro está bien. Diez campos con validación condicional: un plugin te ahorra horas. La decisión es entre flexibilidad (PHP) y productividad (plugin).

¿Por qué aparece un área en blanco en los meta boxes de Gutenberg?

Es casi siempre porque el campo está registrado pero oculto: o bien está deshabilitado en Preferencias, o está fuera del viewport por un problema de CSS/height. Abrí DevTools e inspeccioná el elemento. Si ves display: none o height: 0, ese es el problema. Si el elemento no existe, entonces la registración falló — revisá que tengas 'show_in_rest' => true.

Conclusión

Los meta boxes en Gutenberg funcionan, pero requieren configuración deliberada. La mayoría de los problemas que ves (áreas en blanco, campos que no aparecen, incompatibilidades) se resuelven con tres cosas: 'show_in_rest' => true, contexto correcto, y verificación de preferencias. Si administrás muchos campos personalizados o trabajás en múltiples sitios, Meta Box o ACF ahorran tiempo y reducen bugs. Si construís un tema o plugin propio, PHP puro es suficiente.

La tendencia en WordPress apunta a que los meta boxes desaparezcan eventualmente a favor de bloques personalizados nativos. Pero mientras eso pase, los meta boxes siguen siendo la forma más rápida de extender funcionalidad sin JavaScript. Aprendé a configurarlos bien y no tendrás sorpresas.

Fuentes

Te puede interesar...