page-templates.md 3.6 KB

page-*.php inventory & Phase-3 conversion map

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.

Title-droppers (collapsible now) — DONE

  • 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.

Custom — all Phase-3 (pattern / block template / keep-dynamic)

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_config on 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.fm NowPlaying PHP block. In the Phase-3 rework: either wire a real amplitude_config/ stream, or drop the Amplitude widget + its slice of the 124 KB js/music.js (Amplitude + old Chart.js + last.fm) blob.

page-chat.php REMOVED (2026-06-17): abandoned Twilio chat; template + assets deleted, /chat/ page trashed. Ignore the page-chat.php row + chat references elsewhere in this doc.

Cross-cutting Phase-3 notes

  • Decided (2026-06-17): standardize on the modern 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')).
  • Footer split: 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 variants (now 2): default header.php (most), 'home' = header-home.php (index, about, studio). In FSE → one header part.
  • Already selectable (have 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).
  • Bespoke/self-contained: front-page.php (homepage) bypasses the header/footer system — decide in Phase 3 whether it stays bespoke PHP or becomes a block template.