ページネーションの並び順をソートしたく下記コードにてできないかと試しましたがエラーフロントにエラー文が出てしまいました。
Liquid error (sections/main-list-collections line 29): Array ‘st’ is not paginateable.
やりたいこととしてはpaginateの並び順変更(新着順)と表示件数を6に変更。
{% assign st = collections | sort: 'published_at' | reverse %}
{%- paginate st by 6 -%}
<ul
class="collection-list grid grid--{{ section.settings.columns_desktop }}-col-desktop grid--{{ section.settings.columns_mobile }}-col-tablet-down"
role="list"
>
{%- for collection in collections -%}
<li
class="collection-list__item grid__item{% if settings.animations_reveal_on_scroll %} scroll-trigger animate--slide-in{% endif %}"
{% if settings.animations_reveal_on_scroll %}
data-cascade
style="--animation-order: {{ forloop.index }};"
{% endif %}
>
{% render 'card-collection',
card_collection: collection,
media_aspect_ratio: section.settings.image_ratio,
columns: 3
%}
</li>
{%- endfor -%}
</ul>
{% render 'pagination', paginate: paginate %}
{%- endpaginate -%}
また、元々存在したコードではソートができていましたが表示件数が変更できなかったため上記でできればと思いました。
元コード
{%- liquid
case section.settings.sort
when 'products_high', 'products_low'
assign collections = collections | sort: 'all_products_count'
when 'date', 'date_reversed'
assign collections = collections | sort: 'published_at'
endcase
if section.settings.sort == 'products_high' or section.settings.sort == 'date_reversed' or section.settings.sort == 'alphabetical_reversed'
assign collections = collections | reverse
endif
assign moduloResult = 28 | modulo: section.settings.columns_desktop
assign paginate_by = 30
if moduloResult == 0
assign paginate_by = 28
endif
-%}
{%- paginate lp by paginate_by -%}
<ul
class="collection-list grid grid--{{ section.settings.columns_desktop }}-col-desktop grid--{{ section.settings.columns_mobile }}-col-tablet-down"
role="list"
>
{%- for collection in collections -%}
<li
class="collection-list__item grid__item{% if settings.animations_reveal_on_scroll %} scroll-trigger animate--slide-in{% endif %}"
{% if settings.animations_reveal_on_scroll %}
data-cascade
style="--animation-order: {{ forloop.index }};"
{% endif %}
>
{% render 'card-collection',
card_collection: collection,
media_aspect_ratio: section.settings.image_ratio,
columns: 3
%}
</li>
{%- endfor -%}
</ul>
{% render 'pagination', paginate: paginate %}
{%- endpaginate -%}
こちらがソートできている理由と表示件数が変更できないのはなぜでしょうか。
paginate_byの部分を6に変更してもだめでした。
for文にソートをかけてみましたがページ単位でのソートになってしまいこちらは意味がありませんでした。

