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)

  1. Contact details — duplicated in 3 places - footer.php:19-21hello@rootstructure.com (this address may not exist?) - template-contact.php:68,77,86,95rootstructureomaha@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 says hello@rootstructure.com, contact + SEO say rootstructureomaha@gmail.com

  2. Footer intro paragraph (footer.php:24) - "Root Structure proudly serves homeowners and builders throughout Douglas County..."

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

  4. 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)

  5. 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)

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

  2. 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)

  1. 404 page copy (404.php) - Title, message, button labels.

  2. Archive empty states — "No team members found", "No projects in this category yet" — fine to leave as i18n.


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:

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

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


Implementation Order

  1. ACF Options Page + Theme Settings (Phase 1) — biggest impact, cleanest fix.
  2. Convert nav menus to WP (Phase 2) — straightforward, high value once Phase 1 done.
  3. Our Work testimonial fix (Phase 3) — small, ship after Phase 1.
  4. 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.