Verwendung von Sprigs Rezept „Mehr laden“ nach dem Update
Dies ist eine Fortsetzung einer früheren Frage, die ich (hier) hatte . Ich verwende Sprigs Load More Recipe . Auf meiner Kategorieseite soll die Funktion "Mehr laden" nur Einträge aufrufen, die der aktuellen Kategorieseite entsprechen. In einem kürzlich durchgeführten Update funktioniert die Kategorielösung, die in meiner vorherigen Frage enthalten war, nicht mehr, da sie ein wenig umstrukturiert wurde. Ich kann nicht herausfinden, wie ich das wieder relatedTo(category)
zum Laufen bringen kann. Ich habe es momentan so eingerichtet (das {'relatedTo': category}
macht nichts):
_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 %}
Antworten
Das Problem ist, dass Sie dies tun, .relatedTo(category)
aber die Variable, die Sie übergeben, aufgerufen wird relatedTo
, nicht category
.
Genau wie bei limit
, basierend auf Ihrem Code, sollte es sein .relatedTo(relatedTo)
. Außerdem sollte es Teil desselben Hashs sein wie Ihr limit
.
Sie können jedoch kein Kategorieobjekt an eine Komponente übergeben und müssen id
stattdessen dessen ( Dokumente ) übergeben.
Abhängig davon, was category
in Ihrem Fall ist (und ich denke, es ist ein Objekt), können Sie Folgendes tun:
{{ sprig('_components/load-more', {
'limit': 6,
'categoryId': category.id
}) }}
Dann in Ihrer Komponente:
{% 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 %}