feat: scope query loops to Tag/Category term archives - #127
Open
charl0tee wants to merge 1 commit into
Open
Conversation
Resolve Tag and Category nodes as term archives that render their FSE archive template, and scope the archive's `core/query` loop to the current term at request time. - WP: expose `fseTemplate` on Tag and Category (tag/category → archive template hierarchy). - Next: resolve Tag/Category nodes (fragments + template data + node types), thread the current term through the block-data context, and filter the `contentNodes` query by `categoryIn`/`tagIn`. Builds on the request-time block-data context from #126. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
Author
|
@kuuak @snugglejuice Same same, pour le support des Tag et Category comme archives |
charl0tee
commented
Jul 30, 2026
| // Scope the loop to the current term archive (Tag/Category page) when one is | ||
| // in context, so the query returns only that term's posts. | ||
| const term = context?.term ?? null; | ||
| const categoryIn = term?.taxonomy === 'category' ? [term.databaseId] : null; |
Contributor
Author
There was a problem hiding this comment.
@charl0tee Il faudrait avoir une constante qui défini les noms de nos catégories, extraire dans une fonction, + ajouter une doc dans le readme pour ça
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexte
Quand on visite une page de Tag (ou de Category), on veut afficher le template d'archive rempli avec les infos du terme courant et de la page courante pour la query loop.
Aujourd'hui, sur
superstack, niTagniCategoryne sont résolus comme nœuds : seulsContentType(archive de type de contenu),PageetPostle sont. Il n'existe donc aucune archive de taxonomie, et le bloccore/queryne sait pas se limiter au terme visité.Cette PR ajoute le support complet des archives Tag/Category.
Ce que fait cette PR
WordPress
fseTemplatesurTagetCategory, résolu via la hiérarchie de templates (tag-{slug}→tag→archive, idem pourcategory).Next.js
Tag/Category(nouveaux fragments + fichiers de template data + entrées dans le tableautypesdeget-node-by-uri), de sorte que leur template d'archive s'affiche.term({ taxonomy, databaseId }) auBlockDataContext, rempli à partir du nœud résolu et propagé dans le pipeline d'enrichissement des blocs.getDatadu bloccore/querylitcontext.termet filtre la requêtecontentNodesviacategoryIn/tagIn.La page courante était déjà gérée par la pagination request-time — cette PR ne fait qu'ajouter le scoping par terme par-dessus.
Dépendance / base
feat/query-pagination-request-time) : le scoping réutilise leBlockDataContextet le passage de contexte (page,baseUri) introduits par cette PR. La base de cette PR est doncfeat/query-pagination-request-timeet nonfuture— à re-cibler surfutureune fois #126 mergée.Vérifications
npx tsc --noEmit: aucune nouvelle erreur (les erreurs restantes —next.config.ts,src/stories/*— préexistent et sont hors périmètre).php -lOK surregister-fse-templates.php.Notes
isMultilang: false) ; les fragments incluentlanguageFields/translationsFields(vides hors multilang) ettranslatable: true, sur le modèle deSinglePost.seoTaxFragment) sur ces archives — ajoutable dans un second temps si besoin.🤖 Generated with Claude Code