<?php
/**
* Template for block: Box Images
*/
$bi_image = get_field('bi_image');
$bi_title = get_field('bi_title');
$bi_subtitle = get_field('bi_subtitle');
$bi_p = get_field('bi_p');
$bi_text_b = get_field('bi_text_b');
$bi_link_b = get_field('bi_link_b');
?>
<section class="section-box-image" style="background-image: url(<?php echo esc_attr($bi_image); ?>)">
<div class="container">
<div class="box-image-info">
<h1><?php echo esc_html($bi_title); ?></h1>
<h2><?php echo esc_html($bi_subtitle); ?></h2>
<p><?php echo esc_html($bi_p); ?></p>
<?php
if($bi_text_b != ''):
?>
<div class="tagcloud">
<a class="btn btn-outline-dark" href="<?php echo esc_attr($bi_link_b); ?>"><?php echo esc_html($bi_text_b); ?></a>
</div>
<?php endif; ?>
</div>
</div>
</section>
1. Extracción y Preparación de Datos
Al comienzo del archivo, el código PHP utiliza la función get_field() para extraer los valores de los campos de ACF que has creado (como bi_image, bi_title, bi_p, etc.). Cada uno de estos valores se guarda en una variable PHP local (por ejemplo, $bi_image, $bi_title). Esta etapa asegura que todos los datos necesarios para la presentación estén listos.
2. Estructura Principal y Fondo de Imagen
El bloque comienza a construir el HTML con la etiqueta <section>, que usa la clase section-box-image. Es importante destacar cómo se maneja la imagen:
El valor de la URL de la imagen guardado en $bi_image se inserta directamente en el atributo style como una imagen de fondo CSS: background-image: url(...). Esto significa que la imagen se aplicará como fondo del contenedor, y su visualización (si se recorta, si se repite, etc.) dependerá enteramente de los estilos CSS que tengas definidos en style.css. El uso de esc_attr() aquí garantiza la seguridad de la URL.
3. Contenedor y Contenido de Texto
Dentro de la sección, se utiliza un div con la clase container para asegurar que el contenido textual del bloque se centre y respete los márgenes y anchos del diseño de tu tema. Dentro de este contenedor se coloca un div adicional con la clase box-image-info, donde reside el texto:
- El título (
$bi_title), subtítulo ($bi_subtitle) y párrafo ($bi_p) se insertan usando las etiquetas<h1>,<h2>y<p>, respectivamente. - En cada inserción de texto se utiliza la función de seguridad de WordPress,
esc_html(). Esto es una práctica fundamental que evita que los usuarios inyecten código HTML malicioso o no deseado a través de los campos de texto.
4. Botón Condicional
La última parte del código maneja el enlace o botón de acción. Se aplica una lógica condicional para que el botón solo aparezca si el usuario realmente ha introducido texto en el campo del botón ($bi_text_b).
- El código verifica:
if($bi_text_b != ''): - Si el campo tiene contenido, renderiza el botón con la clase
btn btn-outline-dark. - El texto del botón y el enlace (
href) se toman de las variables$bi_text_by$bi_link_b. Se utilizaesc_attr()para asegurar la URL del enlace antes de imprimirla.
En resumen, template.php actúa como un transformador: convierte los datos simples de ACF en una estructura HTML rica, bien clasificada y segura, lista para ser presentada al visitante.
