es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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):

  1. {{ image }} <br>
  2. {{ pages["explore-more-ingredients"].metafields.global.explore_ingredients_image2.value }} <br>
  3. <img src="{{ image }}">
  4. <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 &lt;img src=&quot;pages[&quot; explore-more-ingredients&quot;].metafields.global.explore_ingredients_image3.value&quot;=&quot;&quot;&gt;

Gracias por la orientación.

Fuente de la imagen

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema está en la sintaxis al asignar la variable image. Debería ser:

    {% capture image %}
    {{ pages["explore-more-ingredients"].metafields.global["explore_ingredients_image"~ random_number].value }}
    {% endcapture %}
    

    Esto concatenará la variable random_number con la cadena “explore_ingredients_image” para formar la clave correcta del objeto metafields. El operador ~ se utiliza para la concatenación de cadenas en Liquid.

    Luego, puedes utilizar la variable image en la etiqueta img de la siguiente manera:

    <img src="{{ image }}">
    

    Esto debería mostrar una imagen aleatoria de los metafields.

Comments are closed.