Quien haya tenido la desgracia suerte de hablar un poco conmigo sobre informática sabrá que utilizo el plugin de campos personalizados ACF (Advanced Custom Fields) a menudo para el desarrollo de mis proyectos. Uno de los principales motivos es la velocidad con la que puedo generar la estructura de información en mis temas o plugins versus las mínimas complicaciones que este plugin pueda generar (duplicación de post_metas, sobrecarga en el administrador de WordPress).
Pero ahora bien, tanto los plugins como los temas que desarrollemos deben ser totalmente independientes ¿Qué quiero decir con esto? Que nuestros proyectos deben funcionar en cualquier instalación de WordPress, sin tener que estar nosotros instalando los plugins necesarios, migrando bases de datos o retocando configuraciones para que todo funcione normalmente. Entonces ¿Cómo podemos incluir los campos personalizados ACF en los plugins o temas que desarrolllamos? Muy simple:
- Incluyendo el plugin directamente dentro de nuestro tema o el mismo plugin.
- Creando una dependencia del plugin.
Incluir ACF en nuestro plugin o tema

Reglas oficiales para distribuir ACF en un plugin o tema
Según la documentación oficial podremos instalar distintas versiones de ACF (de pago o la gratuita) según la finalidad económica de nuestro plugin/tema:
- Si el plugin/tema que desarrollamos es gratis:
- Podemos incluir solo la versión gratuita de ACF.
- Si el plugin/tema que desarrollamos es Premium (de pago):
- Podemos incluir la versión gratuita de ACF.
- o bien podemos incluir la versión de pago de ACF (que incluye el campo repeater, flexible content, etc).
Pasos para incluir el plugin de ACF en nuestros desarrollos
Son pocos y muy fáciles los pasos a seguir:
- Descarga una copia de la versión que necesites (respetando las reglas del punto anterior)
- Copia la carpeta con el plugin dentro de tu tema/plugin.
- Haz un
include
del archivo principal del plugin ACF. - Configura los directorios y PATH del plugin.
- Opcional, puedes ocultar el menú de ACF en el administrador de WordPress.
Para los pasos 3, 4 y 5 abriremos nuestro fichero functions.php (del plugin o tema) y pegaremos el siguiente código. Modificar las rutas con el nombre de vuestro directorio de ACF.
Crear una dependencia del plugin
Otra posible solución es declarar el plugin ACF como una dependencia de nuestro plugin. Esto significa que cuando se active el plugin o tema y no tengamos el plugin de ACF saldrá un mensaje advirtiéndonos que necesitamos instalarlo para el correcto funcionamiento.

Para declarar esta dependencia necesitaremos una pequeña librería de PHP llamada «TGM Plugin Activation» de la que tengo un artículo explicando cómo utilizarla.
Los pasos a seguir para declarar la dependencia son:
- Descargar la librería TGM Plugin Activation
- Hacer un
include
de la librería en nuestro ficherofunctions.php
- Declarar la dependencia del plugin gratuito o de pago según nuestras necesidades
A continuación detalle el código para cualquiera de las dos versiones del plugin:
Dependencia para la versión gratuita de ACF
Dependencia para la versión PRO de ACF
Conclusión
Dependiendo del proyecto, utilizar ACF puede ser una gran ventaja en ahorro de tiempo de desarrollo. Pero esto generará que nuestro desarrollo dependa de un plugin de terceros. Utilizando cualquier de estas dos técnicas podemos quedarnos tranquilos que nuestro código funcionará correctamente ¿Cuál de las dos técnicas utilizar? Como siempre, cada proyecto es único y debemos valorar cuál es la solución más óptima en cada caso.
Jose Alberto
Hola Mau,
Si hago un include de ACF en mi plugin , ¿supongo que tendré que ir actualizando las versiones manualmente no?. ¿Crees que es mejor crear la dependencia para no tener que revisar la versión de ACF cada vez que actualizas tu plugin?
gracias
Mauricio Gelves
Hola José Alberto…
Si lo agregas con un composer no habría falta de actualizarlo manualmente, aunque como tú dices es conveniente marcarlo como una dependencia general.
Un saludo,
Mauricio
Adrián
Buenas Mauricio,
Enhorabuena por el artículo!
La opción que utilizo yo para agilizar el desarrollo de custom posts y custom fields es CMB2, no sé si lo conoces. Es gratuito y permite también usar como repeater la mayoría de los tipos de campos que maneja. No tiene entorno gráfico, no crea ningún menú adicional en WordPress. Cuando yo empece a usarlo ni siquiera tenían un plugin era una librería que había que incluir en tu tema o plugin.
Ahora disponen de plugin o también puedes añadirlo directamente incluyéndolo en tu proyecto. La verdad es que es muy completo y ligero, lo que si toca hacer a mano es en el caso de relacionar custom fields ( creo que esto se hace fácil con ACF ), pero vamos metiendo una sencilla query y rellenando los valores a la hora de generar el custom field, lo tienes solucionado.
Te dejo el enlace tanto al plugin como al repositorio en GitHub por si quieres echarle un ojo, es fácil que te resulte útil:
– https://es.wordpress.org/plugins/cmb2/
– https://github.com/CMB2/CMB2
Mauricio Gelves
Hola Adrián y gracias por tu comentario.
Sí, lo conozco y lo he utilizado, como así también Pods, otra gran herramienta y mantenida por los mismos desarrolladores de WordPress.com.
En este caso sigo utilizando ACF por la rapidez de desarrollo, lo hago todo de forma manual pero luego genero el código PHP en forma automática. Quieras o no esto te ahorra muchas horas de desarrollo. Ya escribiré un post detallando mis pasos de desarrollo con este plugin.
Un saludo,
Mauricio