代码之家  ›  专栏  ›  技术社区  ›  ses

在shoppify的{%for`块中传递以前分配的变量

  •  0
  • ses  · 技术社区  · 5 年前

    blog-templte.liquid

    {% assign articleSortOrder = '' %} 
     ....
    
    {% for article in blog.articles {{articleSortOrder}} %}  
    

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

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

    0 回复  |  直到 5 年前
        1
  •  0
  •   drip    5 年前

    这不是有效的液体代码:

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

    你不能把液体放进液体里,也就是说 {% {{ }} %}


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

    排序不是其中之一。

    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