【问题标题】:Passing previously assigned variable in `{% for` block in Shopify在 Shopify 的“{% for”块中传递先前分配的变量
【发布时间】:2020-06-04 06:09:37
【问题描述】:

blog-templte.liquid

{% assign articleSortOrder = '' %} 
 ....

{% for article in blog.articles {{articleSortOrder}} %}  

出现错误:Liquid syntax error: Unexpected character { in "article in blog.articles {{articleSortOrder}}"

目的是传递变量以根据某些条件对文章进行排序。

问:是怎么让它工作的?

【问题讨论】:

    标签: shopify shopify-template


    【解决方案1】:

    这不是有效的液体代码:

    {% for article in blog.articles {{articleSortOrder}} %}

    你不能在液体中传递液体,a.k.a {% {{ }} %}


    除了for循环只接受几个参数:

    • reversed - 这将反转循环
    • limit - 这将限制迭代
    • offset - 这将使循环跳过特定数量的项目

    排序不是其中之一。

    您可以在此处阅读有关 for 循环的更多信息:https://shopify.dev/docs/liquid/reference/tags/iteration-tags


    为了以特定方式对博客进行排序,您必须像这样对其进行编码:

    {% assign articleSortOrder = '' %} 
    {% assign blog_articles_sort = blog.articles | sort: articleSortOrder %}
    {% for article in blog_articles_sort %}
    
    {% endfor %}
    

    您将文章分配到特定变量中并对其进行排序。

    请记住,这只会对 50 篇文章进行排序。


    如果您想排序超过 50 个,则需要覆盖分页对象 {% paginate blog.articles by 9999 %}

    那么您的代码将如下所示:

    {% paginate blog.articles by 9999 %}
      {% assign articleSortOrder = '' %} 
      {% assign blog_articles_sort = blog.articles | sort: articleSortOrder %}
      {% for article in blog_articles_sort %}
    
      {% endfor %}
    {% endpaginate %}
    

    更多关于分页的信息可以在这里看到:https://shopify.dev/docs/liquid/reference/tags/theme-tags/#paginate


    请记住,Shopify 中的排序功能是有限的。您可能需要使用 javascript 或其他方法对它们进行排序,具体取决于您要查找的内容。

    【讨论】:

      猜你喜欢
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 2015-04-01
      • 1970-01-01
      • 2022-01-08
      相关资源
      最近更新 更多