Classification of the legacy page templates (2026-06-16) for the FSE flip (Phase 3).
Companion: [[upgrade-plan]]. Diff metric = changed lines vs plain page.php.
page-cv.php, page-shop.php — were byte-identical to page.php minus the title.
Collapsed into the selectable page-no-title.php ("No Title"); CV+shop reassigned
via _wp_page_template; both files deleted. No other pure title-droppers exist.| File | Lines | What makes it custom | FSE target |
|---|---|---|---|
page-bio.php |
21 | date stamp, hardcoded italic "Bio" title, #about, row/col, home footer |
pattern |
page-analytics.php |
31 | Matomo iframe + dw_wik_places()/dw_wik_url() |
keep-dynamic / custom block |
page-archive.php |
44 | "Posts" tmpl; get_posts() + pull_til_all() (posts/TIL/bookmarks) |
Query Loop + TIL block |
page-contact.php |
57 | Gravity Forms + Stripe enqueue | pattern + GF block |
page-art.php |
76 | art gallery markup + JS | pattern |
page-desk.php |
115 | backbone loop.js infinite scroll |
Query Loop block |
page-now.php |
129 | "Now" page custom sections | pattern |
page-chat.php |
135 | self-contained (no get_header/footer), Twilio chat |
special — like front-page (keep bespoke / audit) |
page-sitemap.php |
163 | generated sitemap lists | custom block / Query |
page-about.php |
174 | FullCalendar, carousel, home header+footer | pattern + calendar block |
page-music.php |
246 | last.fm integration | pattern/block |
page-studio.php |
284 | carousel + tabs + DrawFillSVG + backstretch, studio header | pattern (the big one) |
Music page — deferred bug (2026-06-17): the bundled AmplitudeJS "daveo radio" player throws
ReferenceError: amplitude_configon every load — that global is never defined anywhere (no inline init; not a regression, pre-dates the JS migration). The player has been inert/unconfigured for years; the working feature is the last.fmNowPlayingPHP block. In the Phase-3 rework: either wire a realamplitude_config/ stream, or drop the Amplitude widget + its slice of the 124 KBjs/music.js(Amplitude + old Chart.js + last.fm) blob.
page-chat.phpREMOVED (2026-06-17): abandoned Twilio chat; template + assets deleted,/chat/page trashed. Ignore thepage-chat.phprow + chat references elsewhere in this doc.
header.php (Bootstrap Icons, flat nav).
The legacy header-home.php (Font Awesome, nested nav — used by index + about + now studio) is the
one to retire into a block part; header-studio.php already removed (was a dup of header-home;
page-studio.php now uses get_header('home')).get_footer('home') → about, archive, bio, contact, desk, sitemap, studio. Default get_footer() → analytics, art, music, now. In FSE this becomes a template-part choice, not per-file.header.php (most), 'home' = header-home.php (index, about, studio). In FSE → one header part.Template Name): about→Home, archive→Posts, desk→Desk, music→Music, now→Now, sitemap→Sitemap, + our no-title→No Title. The rest (analytics, art, bio, contact, studio) are slug-based (page-{slug}.php auto-applies).front-page.php (homepage) bypasses the header/footer system — decide in Phase 3 whether it stays bespoke PHP or becomes a block template.