Blog personal de IT, viajes y otros hobbies

agregar acf en archives

¿Cómo agregar campos personalizados ACF a las plantillas archives?

Es habitual que algunos proyectos tengan diseños muy específicos para las plantillas de archives para los que necesitaremos a veces crear campos personalizados. Pero ¿Dónde mostramos los campos en el administrador de WordPress para estos valores? Después de darle al coco un tiempo he llegado a una solución que considero bastante «elegante» y consiste en:

  1. Crear una subpágina en el menú administrador de WordPress.
  2. Identificar dicha subpágina como «página de opciones» de ACF.
  3. Crear los campos en ACF y especificar la página de opciones del punto 2.

Ejemplo

Para mostrar el código de los 3 pasos detallados anteriormente vamos a crear una solicitud de un proyecto de ejemplo:

  • Tenemos una web y una de sus páginas muestra el listado (archive) de empleados.
  • El cliente nos solicita agregar un texto descriptivo al listado de empleados.
  • Nos solicita también la posibilidad de cargar una imagen que irá cambiando año tras año.
archive custom post type campos personalizados acf
Diseño (muy básico credo por mí) para mostrar el ejemplo que nos solicita el cliente.

Solución

Si bien ACF nos permite crear páginas de opciones, las mismas las agrega al nivel cero del menú del administrador de WordPress. Es una opción válida aunque sería más interesante que dicha página esté bajo el menú del propio Custom Post Type, tal vez con el título de «Opciones». Vamos a ver paso a paso el código para implementar esta funcionalidad.

Crear la subpágina en el menú del Custom Post Type

ACF proporciona una función llamada acf_add_options_sub_page que nos permite crear una subpágina que podremos utilizar para agregarlos los campos utilizando este plugin.

<?php
// Create a submenu for the Archive Employee Options
if( function_exists('acf_add_options_sub_page') ) {
	acf_add_options_sub_page(array(
		'title'      => __('Opciones'),
		'parent'     => 'edit.php?post_type=employee',
		'capability' => 'manage_options'
	));
}

Esto nos dará como resultado el siguiente submenú y a su vez estará disponible en el plugin de ACF como una nueva página de opciones para agregar campos.

archive custom post type acf página de opciones

Crear los campos con ACF

Una vez que ya tenemos creada la subpágina ya podremos dar de alta los campos y asignarlos a la página de opciones 'opciones'.

supagina opciones acf custom post type

Resultado final

Como resultado final tendremos una página de opciones propiamente para este Custom Post Type. De esta manera el usuario no tendrá que estar saltando entre distintas secciones del administrador de WordPress para cargar los valores de una misma entidad ¿A que mola?

pagina opciones custom post type acf

Mostrar los campos en el Frontend

Un punto muy importante a saber es que estos valores van a guardarse en la tabla wp_options de WordPress. Podemos recuperarlos utilizando la función propia de WordPress get_option() o bien utilizando la función de ACF get_field() / the_field().

<php
// ALTERNATIVAS PARA RECUPERAR LOS VALORES
// Opción por defecto de WordPress
echo get_option('texto_descriptivo');
// Con la función get_field de ACF
$variable = get_field('texto_descriptivo', 'option'); 
/* 	Es obligatorio especificar el segundo parámetro
	con el valor 'option'. De esta manera estamos especificando
	a ACF que debe buscar ese valor en la tabla wp_options.
*/

// Con la función the_field de ACF (que hace un echo del valor)
the_field('texto_descriptivo', 'option')
/* 	Es obligatorio especificar el segundo parámetro
	con el valor 'option'. De esta manera estamos especificando
	a ACF que debe buscar ese valor en la tabla wp_options.
*/

Anterior

Revisión de plugin – View Admin As

Siguiente

De nómade digital por: Polonia

  1. Mario Jose

    Bárbaro!
    Excelente y muchas gracias.
    Slds

  2. marcos

    Genial! gracias

  3. Una solución muy elegante y muy intuitiva para el usuario final!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Funciona con WordPress & Tema de Anders Norén