Comment utiliser la recette «Charger plus» de Sprig après la mise à jour
Ceci est la suite d'une question précédente que j'avais (ici) . J'utilise Charger plus de recettes Sprig . Dans ma page de catégorie, je veux que la fonction de chargement plus ne tire que les entrées qui correspondent à la page de catégorie actuelle. Dans une mise à jour récente, la solution de catégorie qui était dans ma question précédente ne fonctionne plus, car elle a été un peu restructurée. Je n'arrive pas à comprendre comment faire fonctionner le relatedTo(category)
à nouveau. Je l'ai actuellement configuré comme ceci (le {'relatedTo': category}
ne fait rien):
_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 %}
Réponses
Le problème est que vous faites, .relatedTo(category)
mais la variable que vous passez est appelée relatedTo
, non category
.
Tout comme avec limit
, en fonction de votre code, cela devrait être .relatedTo(relatedTo)
. En outre, il doit faire partie du même hachage que votre fichier limit
.
Cependant, vous ne pouvez pas passer un objet de catégorie à un composant et devrez le transmettre à la id
place ( docs ).
En fonction de ce qui category
est dans votre cas (et je suppose que c'est un objet), vous pouvez faire:
{{ sprig('_components/load-more', {
'limit': 6,
'categoryId': category.id
}) }}
Puis dans votre composant:
{% 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 %}