The brief
Living Care Lifestyles operates a network of senior living communities across multiple states. Each community has its own brand identity, its own residents and prospects, and its own marketing voice — but they share a parent organization, common admin teams, and a need for visual coherence across the network. The brief was to build four sub-sites in a single WordPress install, without resorting to WordPress Multisite — distinct headers, navigation, and brand presentations per community, while keeping content management, template work, and admin workflow under one roof.
What I built
Four sub-sites, one install, no multisite. A community custom
post type acts as the site switcher; a same-named taxonomy tags
every page, post, and floor plan to its respective community. A
which_site() function determines the active brand on every request
in two steps — first by checking the current post’s community term,
then by falling back to a URL-segment match against registered
community slugs. Header and utility navigation menus are registered
per community (header-menu-{slug}, utility-menu-{slug}) so each
brand renders its own nav from a shared template. The list of
registered communities is cached in a transient that invalidates on
publish, so per-request lookups stay cheap.
Canonical and SEO fidelity per sub-site. With four brands
sharing one install, canonical URLs and structured data have to
behave correctly per community or search engines will collapse the
four brands into one. The default WordPress canonical hook is
removed in favor of explicit per-section handling; FacetWP queries
are scoped to the active community via tax_query so site-specific
listings filter correctly without leaking across brands.
TalkFurther CRM integration with URL-variable-driven CTAs.
TalkFurther is a CRM and visitor-support platform purpose-built for
senior living. The integration is more than a script tag drop.
Editorial CTAs across the site use simple hash anchors — #tour,
#contact, #apply — and a small client-side handler hijacks the
click, preventDefault()s the default jump, and calls TalkFurther’s
API with the right form ID for that keyword. A registry
(window._furtherKeywordFormMap) maps each keyword to a TalkFurther
form ID, so a marketer can drop a “Schedule a Tour” CTA anywhere
and trust it to launch the right form without an engineering ticket.
The handler prefers TalkFurther’s Visitor Support Agent (the
AI/chat surface) when it’s available and falls back to a standard
form widget otherwise. A small accessibility shim layers the
aria-label and role="button" attributes the third-party chat
close button doesn’t ship with by default.
Floor plans, maps, and locations. Floor plans live in their own
floor_plan CPT, with lifestyle (independent / assisted) and
size (studio / 1-bed / 2-bed) taxonomies. FacetWP drives the
filterable grid; cards render from a shared partial. Community
maps embed via FacetWP’s map facet (Google Maps under the hood)
with init args customized through the facetwp_map_init_args
filter. A separate location taxonomy tags content with physical
location references for cross-cutting filtering — find every floor
plan available at a specific community.
What’s notable about it
The architecture decisions were driven by what the editorial team needed to not have to think about. They don’t have to remember which sub-site they’re editing on — the taxonomy follows the content tree. They don’t have to wire a new CTA to a specific form — the hash-anchor convention does it. They don’t have to worry about search engines collapsing four brands into one — the canonical handling holds. Multi-brand work goes wrong when the architecture forces editors to maintain four parallel realities; this one lets them keep their head in a single content-management surface and the network handles the rest.