Advanced Custom Fields ACF

Si estás desarrollando un tema a medida en WordPress un plugin imprescindible que no te puede faltar es Advanced Custom Fields.

¿Cómo decirlo en pocas palabras? Éste plugin lleva WordPress a otro nivel, y permite una personalización extrema de cualquier elemento de nuestro sitio: entradas, páginas, categorías, etiquetas, custom post types, etc…

Éste plugin se lo debemos a Elliot Condon. Lo mejor de todo es que es gratuito. Cierto es que dispone de una versión PRO con infinidad de posibilidades y varios Add-ons de pago, pero en esta entrada vamos a hablar del plugin en sí, y de un Add-on muy recomendable: Repeater Field.

Advanced Custom Fields

Antes decíamos brevemente que ACF llevaba WordPress a otro nivel, veamos cómo. Éste plugin te permite añadir campos personalizados a cualquier elemento: entradas, páginas, categorías, etc…

Es altamente configurable, te permite agregar campos personalizados tipo texto, texto enriquecido, imágenes, archivos, checkboxs, selects, google map, datepicker, colorpicker, etc… y además puedes establecer en qué tipo de elemento quieres que aparezcan: entradas, páginas, un tipo de plantilla concreta, una categoría específica, etc…

Además en su página oficial puedes encontrar multitud de guías y ejemplos prácticos. Está pensado para desarrolladores, posee una gran cantidad de hooks y filters propios.

Antes hacía referencia a un Add-on altamente recomendable: Repeater Fields. Con éste Add-on podrás crear campos personalizados de tipo “repeater”, esto es, si en las entradas quisieras añadir un campo personalizado de tipo imagen para que el usuario final pueda añadir de 1 a n imágenes, el repeater lo que hace es crear un array al que puedes añadir tantos elementos (en este caso imágenes) como quieras.

Además, puedes anidar un repeater dentro de otro, con lo que conseguirías agregar cualquier tipo de metainformación a una entrada, y moldear la estructura según tus necesidades. Después en la página de edición de entradas podrás añadir y/o borrar tantos elementos como desees y ordenarlos simplemente seleccionando y arrastrando con el ratón.

Vamos a ver un ejemplo práctico de uso: Nos piden crear una categoría Noticias, donde las entradas (además de tener su título, contenido e imagen destacada correspondiente) tengan un campo personalizado para subir un archivo PDF y una galería de imágenes.

En el administrador de WordPress hacemos click en el icono “Custom Fields” y a continuación en “Añadir nuevo”. Una vez aquí establecemos el nombre del grupo de campos, en nuestro caso “Noticias” y agregamos un campo. Se nos abre un desplegable que tendremos que rellenar con la información del tipo de campo que queremos insertar. Como comentamos anteriormente es altamente configurable, vamos a detenernos en lo más relevante.

Para el caso del archivo PDF:

  • Label del campo: Archivo PDF (etiqueta que aparecerá en la pantalla de edición de noticias)
  • Nombre del campo: cf_pdf_file (El nombre con el que se guardará en BBDD y que usaremos en la programación de nuestra plantilla)
  • Tipo de campo: Archivo (Nos habilitará un botón en la pantalla de edición de noticias para agregar un archivo usando la librería multimedia)
  • Retornar valor: File Object (Podemos escoger que tipo de valor retornará el campo, lo más interesante es que devuelva el objeto completo para disponer de toda la información sobre el mismo, aunque es cuestión de gustos)

 

Para la galería de imágenes:

  • Label del campo: Galería de imágenes
  • Nombre del campo: cf_gallery
  • Tipo de campo: Repeater
  • Repeater Fields:
    • Label del campo: Imágenes
    • Nombre del campo: cf_gallery_item
    • Tipo de campo: Imagen
    • Retornar valor: Image Object

 

En el siguiente metabox (Location) establecemos las reglas donde queremos que aparezca éste grupo de campos personalizados, en nuestro caso: Post Type is equal to post, de tal manera que sólo aparecerá en la edición de entradas, quedando de la siguiente manera:

acf-backend

 

Para mostrar esta información en nuestro single.php usaremos las funciones que trae consigo ACF. Dentro de nuestro loop utilizaremos la función “get_field()” para recuperar los valores de estos campos:

Para el caso de la galería de imágenes, al ser un campo repeater disponemos de las funciones “has_sub_field()” y “get_sub_field()

En definitiva, con éste plugin podemos personalizar extremadamente nuestras páginas, entradas, custom post types, categorías… para agregar tantos campos personalizados como queramos.

¿Qué os parece?

Si te ha gustado, valora este artículo para mejorar la calidad del blog o compártelo en Redes Sociales…
1 Star2 Stars3 Stars4 Stars5 Stars
Loading...

Web Hosting
  • Marco

    Hola.

    Excelente post, tengo una duda un poco fuera de lo que indicas.

    Al usar acf con un campo de taxonomías, la ligo a una taxonomía existente sin problemas, el problema es que a la hora de que inserto el campo, solo me devuelve el id de la taxonomía y no la taxonomía como tal.

    Que puede ser?

    De antemano muchas gracias.

    • hola!

      Deberías tener una opción que se llama “Retornar valor” que por defecto te devuelve el “ID de Término”, pero puedes indicarle que te devuelva el “Objeto de Término”

      Saludos