Glosario

¿Qué son los custom fields de WordPress y ACF?

20 de mayo de 2026

Los custom fields de WordPress, también llamados post meta, son pares clave valor adjuntos a un post, página o custom post type. Viven en la tabla wp_postmeta con columnas meta_id, post_id, meta_key y meta_value (longtext). WordPress los soporta desde la versión 1.5 (febrero de 2005). La interfaz nativa está bajo Opciones de pantalla activando la caja de custom fields, pero rara vez se usa en la práctica porque Advanced Custom Fields (ACF) y plugins similares ofrecen una experiencia mucho mejor. ACF fue creado por Elliot Condon en 2011, adquirido por Delicious Brains en 2021 y por WP Engine en mayo de 2022. En 2025 tiene más de 2 millones de instalaciones activas. ACF aporta field groups, más de 30 tipos de campos (Text, Number, Email, Image, Gallery, File, Repeater, Flexible Content, Group, Relationship, Post Object, Taxonomy, User, Date Picker, Color Picker, Google Map, oEmbed, WYSIWYG), lógica condicional, reglas de ubicación y una API PHP limpia: get_field( 'price' ), the_field( 'subtitle' ), have_rows( 'gallery' ). El ACF gratuito incluye la mayoría. ACF Pro (de advancedcustomfields.com, alrededor de 49 USD/año por un sitio hasta 249 USD vitalicio ilimitado) añade Repeater, Flexible Content, Gallery, Clone, Options Pages y registro de bloques. ACF Blocks (desde ACF 5.8, agosto de 2019) permite a los desarrolladores registrar bloques Gutenberg en PHP con campos ACF. El 10.10.2024 WordPress.org retiró ACF del directorio de plugins tras una disputa de marca con WP Engine y lo reemplazó por un fork de la comunidad llamado Secure Custom Fields (SCF). ACF Pro sigue disponible en advancedcustomfields.com. En 2025 ACF (de WP Engine) y SCF coexisten como plugins separados.

¿Cómo es la tabla wp_postmeta?

+-----------+---------+-----------------+----------------+
| meta_id   | post_id | meta_key        | meta_value     |
+-----------+---------+-----------------+----------------+
| 1         | 42      | _edit_lock      | 1736178921:1   |
| 2         | 42      | price           | 19.99          |
| 3         | 42      | subtitle        | Edición limitada|
| 4         | 42      | gallery_0_image | 1023           |
+-----------+---------+-----------------+----------------+

Custom fields nativos

  1. Abre un post en el editor.
  2. Tres puntos arriba derecha, Preferencias, Paneles, activa Campos personalizados.
  3. Nombre (meta_key) y valor (meta_value). Click en Add Custom Field.
  4. En el tema: get_post_meta( $post_id, 'price', true ).

Advanced Custom Fields (ACF)

  • Repeater: grupos anidados repetibles (FAQ con pares pregunta y respuesta).
  • Flexible Content: secciones predefinidas en cualquier orden.
  • Gallery: múltiples imágenes.
  • Clone: reutilizar field groups.
  • Options Pages: ajustes globales del sitio.
  • ACF Blocks: bloques Gutenberg en PHP con campos ACF.

Cómo usar ACF

  1. Instala ACF/SCF o descarga ACF Pro.
  2. Custom Fields, Add New, nombra el field group (p.ej. Detalles de producto).
  3. Añade Text subtitle, Number price, Image hero_image, Repeater faqs.
  4. Location: post type es igual a product.
  5. Publica.
  6. En la plantilla:
<?php
$subtitle = get_field( 'subtitle' );
$price    = get_field( 'price' );
$hero     = get_field( 'hero_image' );
?>

El fork ACF/SCF (octubre de 2024)

El 27.09.2024 hubo una disputa pública entre WordPress.org y WP Engine. El 10.10.2024 Matt Mullenweg retiró ACF del directorio y lo reemplazó por Secure Custom Fields (SCF). Sitios con actualizaciones automáticas recibieron SCF. ACF Pro no se vio afectado y sigue vendiéndose en advancedcustomfields.com.

Alternativas a ACF

PluginInstalaciones activasFortalezas
ACF2 millones+UI pulida, Pro features
SCF1 millón+gratuito, reemplazo directo
Meta Box400.000+code first, rápido
CMB2300.000+biblioteca de desarrollador
Pods100.000+CPTs + campos + tablas

Custom fields y REST API

  • register_post_meta() con show_in_rest => true expone el campo en /wp-json/wp/v2/<post-type>/<id> bajo meta.
  • ACF Pro añade REST API automáticamente bajo la propiedad acf.
  • WPGraphQL for ACF añade los field groups al esquema GraphQL.

Rendimiento

  • get_post_meta() sin argumentos carga TODOS los meta del post y los cachea.
  • Consultas por meta_key son lentas a escala (no indexado). +50.000 posts: tabla propia o ElasticPress.
  • Dropdown nativo de meta keys puede colgar el editor en sitios grandes. Deshabilítalo con add_filter( 'postmeta_form_keys', '__return_false' ).
  • ACF guarda una clave de referencia por cada campo (_subtitle con field_64ab123) lo que duplica las filas pero mantiene consistencia.

Patrones comunes

  • Opciones globales con ACF Options Pages.
  • Constructor de páginas sin un constructor (Flexible Content).
  • Posts relacionados (Post Object, Relationship).
  • Secciones reutilizables (Clone).
  • Campos condicionales.

Qué comprueba InspectWP

InspectWP detecta ACF, SCF y plugins similares escaneando scripts cargados, clases body y endpoints REST API. El informe identifica setups headless que consumen la extensión REST de ACF y marca metas expuestas que podrían filtrar datos internos.

Analiza tu sitio de WordPress ahora

InspectWP analiza tu sitio de WordPress en busca de problemas de seguridad, SEO, cumplimiento del RGPD y rendimiento, gratis.

Analiza tu sitio gratis