En WordPress, una de las ventajas de utilizar el plugin Advanced Custom Fields (ACF) es la capacidad de personalizar y estructurar los datos de tus páginas de manera más avanzada. En este artículo, aprenderemos a utilizar dos tipos de campos de ACF, el campo de relación con páginas y el campo de texto, para mostrar en éste caso unos textos legales de forma condicional en páginas de un sitio web.
Configuración de los campos de ACF: Primero, necesitaremos configurar dos campos de ACF en nuestro panel de administración de WordPress. El primer campo será un campo de relación con páginas, que nos permitirá seleccionar las páginas a las que queremos asociar los textos legales. El segundo campo será un campo de texto donde ingresaremos los textos legales que queremos mostrar.
¿Dónde estructuramos el contenido?: Añadimos una página de opciones con ACF, actualmente la versión PRO del plugin te permite crearla de una forma muy sencilla. A ésta página le vamos a asignar el grupo de campos que hemos creado.
Recuperación de los datos de los campos de ACF: En nuestro código, utilizaremos la función get_sub_field()
de ACF para obtener los valores de los campos que hemos configurado dentro de un grupo de campos. Usaremos get_sub_field('campo_de_relacion')
para obtener las páginas relacionadas y get_sub_field('campo_de_texto')
para obtener el contenido de los textos legales.
Comparación de la página actual con las páginas relacionadas: Una vez que tenemos los valores de los campos, necesitamos comparar la página actual con las páginas relacionadas. Para ello, recorreremos el array de páginas relacionadas y utilizaremos la función is_page()
de WordPress para verificar si alguna de las páginas relacionadas coincide con la página actual.
Mostrar los textos legales condicionalmente: Si encontramos una coincidencia entre la página actual y las páginas relacionadas, mostraremos los textos legales utilizando la función the_sub_field('campo_de_texto')
para obtener el contenido del campo de texto dentro del bucle while
correspondiente.
Implementación del código: Para utilizar este proceso en tu sitio web, deberás agregar el código proporcionado en el archivo functions.php
de tu tema de WordPress o en un plugin personalizado. Además, asegúrate de reemplazar los nombres de los campos y ajustar la lógica según tus necesidades específicas.
Utilizar campos de relación y texto en ACF en WordPress es una forma efectiva de mostrar contenido condicional en tu sitio web. Si sigues los pasos descritos en este artículo, puedes personalizar y estructurar tus datos de manera más avanzada, mejorando la experiencia del usuario y facilitando la gestión de contenido en tu sitio.
<?php
function añadir_textos_legales_footer() {
if ( have_rows( 'grupo_de_textos_legales', 'option' ) ) :
while ( have_rows( 'grupo_de_textos_legales', 'option' ) ) : the_row();
$relacion = get_sub_field( 'paginas_con_textos_legales' );
// Comprobar si el campo de relación tiene valores
if ( $relacion ) {
// Verificar si alguna de las páginas relacionadas coincide con la página actual
$mostrar_textos = false;
foreach ( $relacion as $pagina ) {
if ( is_page( $pagina->ID ) ) {
$mostrar_textos = true;
break;
}
}
// Mostrar los textos legales si se cumple la condición
if ( $mostrar_textos ) { ?>
<div>
<?php the_sub_field( 'textos_legales_memoria_anual' ); ?>
</div>
<?php }
}
endwhile;
endif;
}
add_shortcode( 'textos-legales', 'añadir_textos_legales_footer' );
?>
¿Necesitas un desarrollo web a medida?
Me especializo en desarrollar sitios webs avanzados, programando soluciones personalizadas para proyectos web.
Enlaces de interés:
https://www.advancedcustomfields.com/resources/relationship/