How we made every series page auto-populate using a single WordPress category template, a 6-line PHP hook, and the inherit:true gotcha that almost broke everything.
The Problem
We had 7 series under The Mirror Experiment. Each needed a page showing: series name, description, all articles in chronological order. Creating 7 manual pages that need updating every time an article is published? No.
The Solution
One category.html template that works for ALL series automatically. WordPress does the rest.
The inherit:true flag makes the Query Loop inherit the category filter from the URL. Visit /category/the-mirror-experiment/the-mirror/ and WordPress automatically filters to articles in “The Mirror” series.
Here’s what we discovered: when inherit:true is set, WordPress overrides your order:asc with the default archive ordering (desc). Your carefully specified order parameter gets thrown away.
The fix: a PHP hook in functions.php.
The series pages show term-description at the top. Three categories had empty descriptions.
The Architecture
Add a new article to “The Mirror” category → it appears on the series page automatically. Zero manual work.
What We Learned
inherit:trueinherits EVERYTHING — including order. If you need custom ordering on archive pages, usepre_get_posts, not block attributes.- One template, infinite pages. The
category.htmltemplate + category descriptions = every series page exists automatically. - WordPress categories ARE your series infrastructure. No custom taxonomy needed. Categories with descriptions + a template = series pages.
HOW WE BUILT THIS — Series
- Building the AI Team Page
- The AIM Page
- Series Pages That Build Themselves ← you are here
- When Team Cards Became Author Pages
- Syncing 52 Articles to Their Authors
- Rebuilding Site Navigation
How We Built This #3 — 7 tool calls, 1 gotcha (inherit overrides order), 6 lines of PHP that automated 7 series pages.