Corrección de la URL de la imagen en ACF (Advanced Custom Fields)
El plugin ACF (Advanced Custom Fields) es una herramienta excelente y práctica para ampliar la funcionalidad de WordPress. ACF te permite añadir campos personalizados al panel de administración de tu proyecto. Al usar el campo de imagen, suelo usar la URL para obtener el valor.

En la plantilla, al generar el valor del campo de imagen, no siempre se obtiene el valor correcto. A veces, en lugar de la URL, se obtiene un ID. Esto suele suceder en un bucle cuando se generan elementos desde una matriz. Puedes solucionar este comportamiento con el siguiente código:
PHP
$logo = get_field('logo');
if (is_numeric($logo)) {
$logo_url = wp_get_attachment_url($logo);
} else {
$logo_url = $logo; // string (URL)
}
Si se utilizan campos de imagen en diferentes plantillas, tiene sentido mover esta corrección al archivo functions.php.
PHP
// functions.php
function getAcfImgUrl($img){
if (is_numeric($img)) {
return wp_get_attachment_url($img);
}
return $img;
}
En la plantilla, esto podría parecerse al que se muestra a continuación. Pero todo depende de su implementación, y usted tendrá sus propios nombres de campo.
PHP
$offers = get_field('offer_list');
foreach ($offers as $item) {
$icon = getAcfImgUrl($item['icon']);
// other code...
echo '<img src="' . $icon . '" atl="icon" />';
}
Publicaciones similares:
-
Widget (plugin) clásico de WordPress con los tipos de cambio del Banco Nacional de Ucrania
WP Currency NBU: el clásico widget de tipo de cambio del NBU (Banco Nacional de Ucrania) para WordPress. Este widget muestra el tipo de cambio del USD (dólar estadouniden...
-
Plugin Step Options para WordPress
En cierto momento, necesité una forma de mostrar bloques de contenido idénticos en varias páginas, con la posibilidad de gestionarlos y actualizarlos fácilmente desde el ...
-
Iterar elementos de una matriz sin bucles
Los ejemplos son muy abstractos debido a que hay ciclos. Nuestra condición será la siguiente: es necesario seleccionar todos los elementos del array mediante un atributo ...
Leave a Reply