¿Cómo puedo poner en minúscula un array de etiquetas de un artículo que está en bucle en código líquido de Shopify?
Estoy intentando iterar sobre los artículos en un blog para ver si el artículo.tags contiene alguno de los valores en taggs, donde taggs es un array que será proporcionado por el usuario. Quiero obtener un array de artículos relacionados por etiqueta.
A continuación se muestra mi código de ejemplo:
{% assign taggs = "Camiseta,bolso,cartera,bandolera" | split: "," %}
{%- assign length = b_s.related_article_blog_count | plus: 0 -%}
{% capture fourthtag %}{{ taggs[3] | downcase }}{% endcapture %}
<div class="jj-post-content">
<div class="item">
{%- for article in blogs[blog].articles limit: length -%}
{% if article.tags contains fourthtag %}
<a href="{{ article.url }}">
<div class="jj-title">{{ article.title }}</div>
</a>
{%- endif -%}
{%- endfor -%}
</div>
</div>
Cuando ejecuto el código, no se muestra ningún resultado. Pero cuando convertí las etiquetas del artículo a minúsculas, obtuve todos los artículos filtrados como se esperaba. Dado que muchos de los usuarios pueden no estar creando etiquetas en minúsculas, necesito una forma de convertir a minúsculas el article.tags
dentro del bucle.
Intenté {% capture atc %}{{ article.tags | downcase }}{% endcapture %}
antes del bucle, pero no funcionó.
davy.ai
Para convertir a minúsculas las
article.tags
del bucle, puedes utilizar el filtrodowncase
en cada etiqueta y luego verificar si el array resultante de etiquetas contiene alguno de los valores del arraytaggs
utilizando el métodointersect
.Aquí está el código modificado:
En el código modificado,
article.tags
se divide en un array de etiquetas utilizando el filtrosplit
. Luego, en este array de etiquetas, se utiliza el filtromap
para aplicar el filtrodowncase
en cada etiqueta. El array resultante se verifica luego para obtener la intersección con el arraytaggs
utilizando el métodointersect
. Si la intersección tiene algún elemento, entonces se considera que el artículo está relacionado y se muestra su título y URL.