업데이트 후 Sprig의 "Load More"레시피를 사용하는 방법
Nov 19 2020
이것은 내가 (여기) 했던 이전 질문의 연속입니다 . 내가 사용하고 장식의 Load 더 레시피 . 내 카테고리 페이지에서 더로드 기능이 현재 카테고리 페이지와 동일한 항목 만 표시하도록하고 싶습니다. 최근 업데이트에서 이전 질문에 있던 범주 솔루션이 약간 재구성되었으므로 더 이상 작동하지 않습니다. 어떻게 relatedTo(category)
다시 작동 하는지 알 수 없습니다 . 현재 다음과 같이 설정되어 있습니다 ( {'relatedTo': category}
아무것도하지 않음).
_category.twig
{{ sprig('_layouts/_blog/_categories/_loadMore', {'limit': 6},{'relatedTo': category}) }}
{{ sprig.script }}
_loadMore.twig
{% set offset = offset ?? 0 %}
{% set entries = craft.entries.section('caseFiles').offset(offset).limit(limit).relatedTo(category).all() %}
{% for entry in entries %}
------Entry Content-----
{% endfor %}
{% if entries %}
{# Increments `offset` by the value of `limit` and swaps itself out on click #}
<button class="orange-button" sprig s-vars="offset: {{ offset + limit }}"
s-target="this" s-swap="outerHTML">
<p>Load More</p>
</button>
{% endif %}
답변
3 Oli Nov 19 2020 at 16:50
문제는 수행하고 .relatedTo(category)
있지만 전달하는 변수가 호출되는 relatedTo
것이 아니라 호출 된다는 것 category
입니다.
와 마찬가지로 limit
코드에 따라 .relatedTo(relatedTo)
. 또한 .NET Framework와 동일한 해시의 일부 여야합니다 limit
.
그러나 카테고리 객체를 컴포넌트에 전달할 수 없으며 id
대신 전달해야합니다 ( docs ).
category
귀하의 경우 에 따라 (그리고 그것이 객체라고 생각합니다) 다음과 같이 할 수 있습니다.
{{ sprig('_components/load-more', {
'limit': 6,
'categoryId': category.id
}) }}
그런 다음 구성 요소에서 :
{% set offset = offset ?? 0 %}
{% set query = craft.entries().section('caseFiles').offset(offset).limit(limit) %}
{# Make sure a categoryId is being passed #}
{% if categoryId %}
{% set query = query.relatedTo(categoryId) %}
{% endif %}
{% set entries = query.all() %}
{% for entry in entries %}
------Entry Content-----
{% endfor %}
{% if entries %}
{# Increments `offset` by the value of `limit` and swaps itself out on click #}
<button class="orange-button" sprig s-vars="offset: {{ offset + limit }}"
s-target="this" s-swap="outerHTML">
<p>Load More</p>
</button>
{% endif %}