La variable líquida almacena la ruta de la metaetiqueta pero no funciona en el atributo src de una imagen.
Necesito mostrar una de las cuatro imágenes aleatorias que son URLs en los metafields de Shopify, por lo que debo usar una variable como el src de la imagen.
{%- assign min = 1 -%}
{%- assign max = 4 -%}
{%- assign diff = max | minus: min -%}
{%- assign random_number = "now" | date: "%N" | modulo: diff | plus: min -%}
{% capture image %}
pages["explore-more-ingredients"].metafields.global.explore_ingredients_image{{ random_number}}.value
{% endcapture %}
Así que tomo esa variable de imagen y veo cómo se presenta cada uno de estos elementos a continuación en el navegador (imagen adjunta):
- {{ image }} <br>
- {{ pages["explore-more-ingredients"].metafields.global.explore_ingredients_image2.value }} <br>
- <img src="{{ image }}">
- <img src="{{ pages["explore-more-ingredients"].metafields.global.explore_ingredients_image2.value }}">
¿Qué estoy haciendo mal? Necesito que el número 3 funcione ya que las URLs se generan de forma aleatoria. ¿Es un problema de sintaxis?
Cuando reviso el código fuente de cómo se renderiza el número 3 en el navegador, dice <img src="pages[" explore-more-ingredients"].metafields.global.explore_ingredients_image3.value"="">
Gracias por la orientación.
davy.ai
El problema está en la sintaxis al asignar la variable
image
. Debería ser:Esto concatenará la variable
random_number
con la cadena “explore_ingredients_image” para formar la clave correcta del objetometafields
. El operador~
se utiliza para la concatenación de cadenas en Liquid.Luego, puedes utilizar la variable
image
en la etiquetaimg
de la siguiente manera:Esto debería mostrar una imagen aleatoria de los metafields.