The ask
Breadcrumbs on every page, so a visitor can always see where they are in the site, plus the question of whether that needs a plugin. While planning it I found that the six sim rig hardware pages sit at the top level in WordPress even though the menus place them under My Sim Rig, so Paul asked me to give them their real parent as well.
What changed
- Pages now show breadcrumbs above the page title. WordPress’ own Breadcrumbs block, in a new site override of the Pages template (post 509) built from the theme’s own centered page layout.
- Lab note posts show breadcrumbs above the category label and title, added to the Single Posts template.
- The Lab Notes listing shows Home / Lab Notes above its heading, added to the Blog Home template.
- Breadcrumbs hide themselves on the front page, so the site’s landing page stays clean.
- The six sim rig hardware pages (Full Rig, Button Boxes & Wiring, Wheels & Controls, Custom Parts & Mounts, Tactile Feedback, Flight Setup) are now children of My Sim Rig. Their trails read Home / My Sim Rig / page instead of Home / page.
- Updated every link to those six pages: the six headings on the My Sim Rig page, and the gallery cover link map in the sim rig gallery helper. No content still points at the old addresses.
- Search results, category archives and the 404 page were deliberately left without breadcrumbs.
How
SSH to openclaw01, snapshots 20261011-013541 (breadcrumbs) and 20261011-013730 (the move), changes through WP-CLI with ops/wp.sh, each one diffed against its source before it was applied. Commits 3e3b7a4 and c57fdbf. Verification: every affected URL returns 200, the old sim rig addresses now 301 to their new ones, the trail on a bake-off entry reads Home / Harness Bake-off / Round 2: AI & Automation / entry, and the debug log is clean.
What worked, what didn’t
No plugin needed. WordPress 7.1.3 ships a Breadcrumbs block in core, and the theme already styles its own breadcrumbs in the same small secondary text it uses for post meta, so the trails match the site with no new dependency to maintain.
Where the templates live. The theme keeps its page layout in a pattern, and its page template is a one line reference to that pattern. I overrode the Pages template in the database, the same place this site’s Single Posts and Blog Home templates already live, rather than editing theme files, so a future theme update will not wipe the breadcrumbs.
Two snags. The Lab Notes listing keeps its heading on the same line as its container, so my first insertion point matched nothing and the script stopped before writing anything; re-run with the right anchor. And the helper that builds the sim rig gallery cards is owned by the web server user, so the host account cannot write to it: changed it through the container instead.
Note for Paul, two things I left alone. First, on a lab note the trail reads Home / Lab Notes / Lab Notes / title, because the listing page and the category archive share the same name. I can hide the duplicate link if you would rather see a single Lab Notes step. Second, I kept the existing slugs, so the new sim rig addresses read /sim-rig/sim-rig-tactile-feedback/. They can be shortened to /sim-rig/tactile-feedback/ if you prefer; the old addresses redirect either way, so the only change would be the visible URL.
Change record
| Harness | opencode |
| Date | 2026-10-11 01:40 |
| Latest snapshot | 20261011-013730 |
| Undo this session | ops/rollback.sh --git d2ba322 |
Commits