
ACF en código: por qué es la mejor opción
Advanced Custom Fields (ACF) es uno de los plugins más populares para agregar campos personalizados en WordPress. Su interfaz gráfica es muy intuitiva y fácil de usar, lo que lo hace ideal para usuarios sin experiencia técnica. Sin embargo, cuando trabajas en proyectos profesionales, especialmente en entornos controlados por versionado de código (como Git), usar ACF mediante código PHP se vuelve una mejor práctica.
En este artículo te explicamos por qué usar ACF en código es mejor y te mostramos cómo hacerlo, incluyendo ejemplos funcionales. Además, te contamos cómo integrarlo con Composer, lo que mejora aún más el flujo de trabajo para desarrolladores.
Ventajas de usar ACF vía código
1. Control total en Git
Cuando creas campos personalizados desde el panel de WordPress, esa configuración se guarda en la base de datos. Esto significa que:
- No puedes versionarla con Git.
- No se traslada fácilmente entre entornos (local, staging, producción).
En cambio, si los campos se registran por código, todo queda dentro del proyecto, en archivos .php, y puedes hacer commit, comparar cambios, revisar historial, etc.
2. Reusabilidad y modularidad
Puedes definir grupos de campos específicos para ciertos bloques, tipos de contenido o incluso bloques personalizados (como Gutenberg blocks), y reutilizarlos entre proyectos.
3. Automatización del despliegue
Al tener todo en código, el proceso de deploy se vuelve más limpio y automático. No es necesario exportar/importar configuraciones manualmente.
4. Mayor control del contexto
Puedes aplicar lógica condicional avanzada, como mostrar un grupo de campos solo si cierto usuario tiene un rol específico, o si un post tiene cierta taxonomía. Eso, desde la UI, es mucho más limitado.
Ejemplo: Registrar campos con código
Primero asegurate de que ACF PRO esté activo. En caso de que uses Composer, más abajo te contamos cómo hacerlo.
Aquí un ejemplo sencillo para agregar campos personalizados a un Custom Post Type llamado proyecto
.
<?php add_action( 'acf/init', function() { if ( function_exists( 'acf_add_local_field_group' ) ) { acf_add_local_field_group([ 'key' => 'group_proyecto_info', 'title' => 'Información del Proyecto', 'fields' => [ [ 'key' => 'field_proyecto_cliente', 'label' => 'Cliente', 'name' => 'cliente', 'type' => 'text', ], [ 'key' => 'field_proyecto_fecha', 'label' => 'Fecha de entrega', 'name' => 'fechaEntrega', 'type' => 'date_picker', ], ], 'location' => [ [ [ 'param' => 'post_type', 'operator' => '==', 'value' => 'proyecto', ], ], ], ]); } });
Este código define un grupo llamado «Información del Proyecto» y lo asocia al tipo de post proyecto
. Los campos se crearán automáticamente cuando accedas al editor de ese CPT.
Cómo acceder a estos campos desde PHP
Para recuperar los valores de los campos creados con ACF desde tu tema o plugin, puedes usar get_field()
:
<?php $cliente = get_field( 'cliente', get_the_ID() ); $fechaEntrega = get_field( 'fechaEntrega', get_the_ID() );
Recuerda siempre usar get_the_ID()
o el ID del post como segundo parámetro si no estás dentro del loop.
¿Y cómo integrar ACF PRO con Composer?
Para una integración profesional, lo ideal es que ACF también se administre desde composer.json
. De esta forma:
- Se instala automáticamente con tus dependencias.
- No necesitas subir manualmente el plugin a cada sitio.
- Se mantiene versionado en el mismo proyecto.
Te dejamos esta guía detallada que explica cómo hacerlo paso a paso:
Agregar ACF PRO a tu proyecto de WordPress mediante Composer
Aunque la interfaz visual de ACF es útil, cuando el proyecto crece o se trabaja en equipo, usar código se vuelve la opción más sólida. No solo ganás en control, sino que te asegurás de que todo esté versionado, sincronizado entre entornos y fácilmente replicable.