Client-Editability Audit
Date: 2026-05-07 Scope: Every page-rendering template in the theme, plus header, footer, archives, and singles. Goal: Anything visible on the public site should be editable in wp-admin without dev help.
Status by Page
| Page | URL | Status | Notes |
|---|---|---|---|
| Homepage | / |
✅ Editable | All modules, fully ACF-driven |
| About | /about/ |
✅ Editable | Module-driven |
| Why Us | /why-us/ |
✅ Editable | Module-driven (4 modules) |
| Our Team | /our-team/ |
⚠️ Mostly | Team CPT editable; eyebrow/title in archive-team.php are hardcoded |
| FAQs | /faqs/ |
✅ Editable | FAQ CPT + module-driven |
| Service Areas | /service-areas/ |
✅ Editable | Module-driven |
| Contact | /contact/ |
❌ Hardcoded | Email, phone, address, hours all baked into template-contact.php |
| Our Work | /our-work/ |
⚠️ Mostly | Categories editable; hardcoded testimonial baked into template (lines 74-81) |
| Project Categories | /work/<cat>/ |
✅ Editable | Term-level ACF (image, description, hide_from_public) |
| Single Project | /projects/<slug>/ |
✅ Editable | Title + featured image are the only client-visible fields |
| Single Team Member | /team/<slug>/ |
✅ Editable | All fields ACF-driven |
| 404 | (any 404) | ❌ Hardcoded | Copy is hardcoded; rare-edit territory |
| Training Guide | /training/ |
⚠️ Dev-only | Content in docs/client/*.php partials — by design, not client-editable |
| Header | (every page) | ❌ Hardcoded | 6 nav items + CTA button label all hardcoded |
| Footer | (every page) | ❌ Hardcoded | Nav menus, intro paragraph, social URLs all hardcoded |
Hardcoded Content Inventory
Critical (changes often, shows everywhere)
-
Contact details — duplicated in 3 places -
footer.php:19-21—hello@rootstructure.com(this address may not exist?) -template-contact.php:68,77,86,95—rootstructureomaha@gmail.com,(402) 960-0897,Omaha, NE,Mon–Fri, 8am–5pm-inc/seo.php:27-28— phone + email used in organization schema for SEO - ⚠️ Email mismatch: footer sayshello@rootstructure.com, contact + SEO sayrootstructureomaha@gmail.com -
Footer intro paragraph (
footer.php:24) - "Root Structure proudly serves homeowners and builders throughout Douglas County..." -
Header nav menu (
header.php:48-68, 107-127) - 6 items hardcoded twice (desktop + mobile) — Our Work, About, Why Us, Our Team, FAQs, plus the Get a Quote CTA -
Footer nav menus (
footer.php) - "Our Work" column auto-pulled from project_category taxonomy ✅ - "About" column hardcoded (Why Us, Our Team, Service Areas, FAQs) - "Connect" column hardcoded (Contact, Get a Quote, Facebook, Instagram) -
Social links (
footer.php:27,30,122,127) - All point to bare domain URLs (https://facebook.com/,https://instagram.com/,https://linkedin.com/) — no real profiles. Placeholder.
Medium (per-page baked)
-
Hardcoded testimonial on Our Work page (
template-our-work.php:74-81) - "Root Structure made the process stress-free..." — Derek S., Gretna - Should pull from the testimonial CPT or use the testimonial module instead. -
Team archive header (
archive-team.php:15-16) - Eyebrow "Good to Meet Ya'" and title "Meet the Team" baked in.
Low (rare changes, dev-acceptable)
-
404 page copy (
404.php) - Title, message, button labels. -
Archive empty states — "No team members found", "No projects in this category yet" — fine to leave as i18n.
Recommended Fix Plan
Phase 1 — Single Source of Truth for Site Identity (highest leverage)
Build an ACF Options Page at wp-admin → Theme Settings. One screen, the client edits once, everywhere updates:
- Contact: email, phone, address, hours
- Footer intro paragraph
- Social profiles: Facebook URL, Instagram URL, LinkedIn URL (use
textfield type per CLAUDE.md, noturl) - Header CTA: button label + URL (currently "Get a Quote")
Then update consumers:
- footer.php — pull email + intro + social URLs from options
- template-contact.php — pull email + phone + address + hours
- inc/seo.php — pull email + phone (the organization schema source of truth)
- header.php — pull CTA button
Phase 2 — Convert Header + Footer Nav to WP Nav Menus
Two registered menu locations: primary (header) and footer-about. Client edits via Appearance → Menus.
The "Our Work" footer column already auto-builds from the taxonomy — leave that.
Phase 3 — Move the Our Work testimonial into a real source
Either:
- Add a "Show Testimonial" toggle + selector to the Our Work page in admin, OR
- Just use the existing testimonial module on the Our Work page (it's a regular page; modules work)
Phase 4 — Clean up small hardcodes
- Make team archive eyebrow/title editable via ACF on a "Team Settings" options page or term-style fields.
- Leave 404 copy hardcoded (low value to make editable).
Implementation Order
- ACF Options Page + Theme Settings (Phase 1) — biggest impact, cleanest fix.
- Convert nav menus to WP (Phase 2) — straightforward, high value once Phase 1 done.
- Our Work testimonial fix (Phase 3) — small, ship after Phase 1.
- Team archive header (Phase 4) — could roll into Phase 1's options page.
Email Inconsistency — Resolve First
Before any of this, decide which email is canonical:
- rootstructureomaha@gmail.com (contact page + SEO) — looks real
- hello@rootstructure.com (footer) — does this domain even resolve?
Recommend pinning to rootstructureomaha@gmail.com everywhere unless Chris has set up the rootstructure.com domain. Worth confirming with Chris.