Acreline documentation · ThemeForest / own-site pack · Fiction only

AcrelineHomes · neighborhoods · local agents

Install and match the demo

Acreline is a WordPress theme for real estate agents. Marketing pages use Gutenberg; listings, agents, and bookings use classic metaboxes. Sample phones are 555 numbers. It is not a live MLS or licensed brokerage. Created by Matt Hummel.

Little plugin stack. The theme zip alone runs the office. You do not need Advanced Custom Fields, Elementor, or an IDX plugin. Change office chrome in Customizer, marketing copy in the block editor, and inventory in listing/agent metaboxes — not in Blade or CSS.

Jump: Install · Plugins · Homepage · Customizer · Top bar · Fields · Menus · Templates · Demo · Child · Updates · FAQ

1. Installation

  1. Host: WordPress 6.6+ and PHP 8.3+ (full table). Composer and npm are not required on the host.
  2. Extract the outer pack zip. Upload acreline.zip via Appearance → Themes → Add New → Upload Theme.
  3. Activate Acreline. The folder name must stay acreline (Vite asset URLs).
  4. Optional: activate acreline-child.zip, then acreline-core.zip.
  5. Appearance → Acreline Setup — run the setup wizard (identity, colors, optional demo).
  6. Customize → Identity — brand, phone, email, address. Site Identity — logo.
  7. Tools → Seed Acreline demo if you want the preview pages and sample inventory.

Do not upload the outer acreline-*.zip into WordPress. WordPress only accepts a zip whose root folder contains style.css.

Permalinks: Settings → Permalinks → Post name. Pretty permalinks are required for /listing/{slug}/ and /agent/{slug}/.

2. Plugins — none required

To go liveTheme only. Listings, agents, and bookings register in the theme so the demo works.
Acreline Core (optional)Keeps those post types in the database if you later switch themes. Store-correct home for CPTs. In this pack as acreline-core.zip.
Acreline Child (optional)CSS that survives parent updates. acreline-child.zip.
SEO (optional)Yoast, Rank Math, SEOPress, or AIOSEO. The theme already prints title, description, canonical, Open Graph, and Twitter tags and yields when one of those is active.
Do not install to “make fields work”ACF, Meta Box, Elementor, WPBakery, an IDX/MLS plugin, or a second SEO panel in the theme.
TGMPA / plugin installerNot used. This theme does not auto-install plugins.

WordPress.org / Theme Check: a future lite zip can define KS_DISABLE_THEME_CPTS so the theme is presentation-only when Core is the registrar. This general pack does not set that, so a regular host works with the theme zip alone.

3. Homepage and reading settings

  1. Seed creates a page titled Home with template Home (front-page.blade.php).
  2. Settings → Reading → A static page → Homepage: Home. Posts page: Blog.
  3. If the front page looks like a post list, Reading is still set to “Your latest posts.”

The homepage search form (type, price, area) submits to the Listings page with query params. Inventory is the listing post type — JavaScript reads window.ACRELINE.listings.

The hero photo slowly pans and zooms by default (Customize → Header → Animate homepage hero image). Headlines and the search form stay still. An optional phone-only tilt on the search panel is off by default (Tilt listing search on mobile) — it does nothing without sensors or permission.

4. Customizer (theme options)

All office chrome is under Appearance → Customize. There is no separate “Theme Options” panel and no dummy license screen.

IdentityBrand name, header tagline, phone, email, address, hours, header button label/URL, footer blurb, demo banner, removable author credit.
ComplianceBrokerage legal name, optional licenses, Fair Housing, MLS/IDX slots, privacy/terms URLs, form consent. Same fields in Acreline Settings. See Website compliance checklist (not legal advice).
Site IdentityCustom logo (replaces the house mark), site title, tagline. Logo max height 44px in the header. Recommended ~200×48 PNG or SVG.
ColorsEight styles: Forest, Clay, Navy, Burgundy, Harvest, Lake, Orchard, Charcoal. Then accent, paper (page background), ink (text). Forest sample: accent #1f6b4a, paper #f5f4f1, ink #141210. Header menu, hamburger, and mobile drawer use these tokens.
HeaderStandard or compact; sticky on/off. Homepage hero: “Animate homepage hero image” (ks_hero_ken_burns, on) and “Tilt listing search on mobile” (ks_hero_search_tilt, off). Same toggles on Appearance → Acreline Settings → General. See customizer.html.
TypographyHeading and body fonts (Inter default). Plus Jakarta Sans, DM Sans, Manrope, Montserrat — Google Fonts, SIL OFL. No font files in the zip.
Social linksFacebook, Instagram, YouTube, LinkedIn, X.
MenusAssign Primary Navigation and Footer Navigation. Seed creates them if missing.
WidgetsFooter and Primary sidebars. Footer is the public one. Classic widgets (block widgets are off).
Top BarSlim bar above the header — desktop only (hidden below 900 px). Enable toggle, color style (Dark / Accent / Light / Custom), announcement badge + message + link, CTA pill button, contact item toggles (phone / email / address / hours), social icon toggles, optional dismiss. All enabled items surface at the foot of the mobile nav drawer automatically.
GitHubFine-grained PAT for Appearance → Update Theme. Contents: Read. Add Actions: Read and write only to trigger rebuilds. Repo: matthummel-pa/wp-acreline.

Uncheck Show concept demo banner and Show removable author credit before a client preview. Footer copyright is always the site name and year (WordPress.org rule). The floating Colors control on the concept preview is demo chrome only — buyers set a style in Customize → Colors.

Logos and fair-housing notes: branding.html. Brokerage ID, IDX slots, and form consent: compliance.html.

Top bar

The top bar (Customize → Top Bar) places a slim, configurable strip above the site header on desktop screens (900 px wide and up). On mobile it is hidden — its content is available inside the slide-out nav drawer instead so visitors on phones still see the announcement and contacts.

Color styleAccent — brand color (default; tracks the active color style). Dark — ink background. Light — paper background. Custom — pick any background and text color. Sites that already saved a style keep that choice.
AnnouncementOptional badge pill (e.g. "OPEN HOUSE") + message text. Add a URL to make the message a link.
CTA pillButton on the right side — label + URL. Leave empty to hide.
Contact itemsToggle phone, email, office address, or hours on/off. Values come from Customize → Identity automatically.
Social iconsPer-platform toggles (Facebook, Instagram, YouTube, LinkedIn, X). Icons only appear if the platform URL is set in Customize → Social links.
DismissWhen checked, a × button appears. Clicking it hides the bar for the current browser session (sessionStorage). Refreshing the page after the session ends restores it.

Tip: Use the announcement slot for open-house dates, price drops, or seasonal hours. The bar shifts the sticky header down automatically so nothing overlaps.

5. Custom fields — do not edit the design

The block editor is off. Templates are Blade. Day-to-day copy is metaboxes on the post or page. Keys are stored as ks_{field} — do not rename them or live posts go blank. Allowed HTML in page copy: em, strong, br, a.

Photo fields use the media library (upload or pick). A URL is kept for existing Unsplash / hotlinked photos. Uploads also set the featured image.

Pages (Page fields)

Each marketing template has hero brand, eyebrow, title, lead, hero image, plus page-specific section copy and a bottom CTA. Empty fields fall back to theme defaults — you can clear a field to restore the sample sentence.

Shared herohero_brand, hero_eyebrow, hero_title, hero_text, hero_image
Shared CTActa_title, cta_text, cta_primary, cta_secondary
Home extrasStart-here cards, search labels, spotlight, booking intro — all labeled in the metabox

Listings (Listing details)

Type: Home, Working Farm, Land / Acreage, Historic Home. Status: Active, New, Pending, Sold.

LocationStreet address, city, state, ZIP, township (sample areas: North Ridge, Mill Creek, Oak Hollow)
NumbersList price, beds, baths, square feet, acres, year built, annual taxes, HOA / dues
MLSMLS number is a text field for layout — not a live feed
Map pinsMap pin top % and left % place the marker on the listings map graphic (not Google Maps lat/lng)
MediaListing photo, card gradient fallback, virtual tour URL
AgentListing agent (agent post ID)
FeaturedCheckbox — show in the homepage spotlight. Store 1 or omit; do not store "0"
DescriptionLong listing copy

Public URL: /listing/{slug}/. Add a listing under Listings → Add New (not Pages).

Agents (Agent details)

IdentityPhoto, title / designation, avatar initials, avatar color
LicenseLicense number, license state, years of experience
ContactDirect phone, mobile, email, office name, office phone
PracticeSpecialties, service areas, languages, designations (ABR, CRS, GRI…)
IDsMLS ID, NRDS ID — text fields; not a live association lookup
LinksPersonal website, booking / calendar URL, Facebook, Instagram, LinkedIn
Bio / featuredBio, featured checkbox

Public URL: /agent/{slug}/.

Bookings

The public showing form POSTs to keystone/v1/bookings and creates a Booking post. Pipeline: Requested → Confirmed → Completed (or Cancelled). Advance status from WP Admin → Bookings (row action or the metabox). Use /book/?listing_id=123 to preselect a listing. Do not use ?listing= as a public query (it 404s /book/).

Showing types: In-person tour, Private preview, Virtual walk-through. Fields: date, time, client name / email / phone, notes, assigned agent.

This is a concept pipeline — not a calendar, payment, or lockbox system.

Blog posts (Post fields)

Featured image + article body. The block editor is off; paste HTML in the body if you need links or lists.

Editing theme files does not change live posts. Re-seed only to reset sample inventory.

  1. Appearance → Menus — locations Primary Navigation (header) and Footer Navigation. Seed creates Home, Listings, Areas, Guide, Blog, Agents, Contact.
  2. Hardcoded concept slugs are the fallback only, before a menu is assigned.
  3. Appearance → Widgets — Footer (public) and Primary (sidebar). Classic widgets.
  4. Customize → Site Identity → Logo — replaces the house mark. See branding.

7. Templates

Homefront-page.blade.php (Template: Home)
Listingspage-listings.blade.php
Book a showingpage-book.blade.php
Areaspage-areas.blade.php
Guidepage-guide.blade.php
Agentspage-agents.blade.php
Contactpage-contact.blade.php
Bloghome.blade.php
Listing / agent singlessingle-listing.blade.php, single-agent.blade.php
Postssingle.blade.php

Rewrites: /listing/{slug}/, /agent/{slug}/. Bookings are not public. Assign a template under Page attributes when you create a page by hand (seed already sets _wp_page_template).

Contact uses office phone, email, address, and hours from Customize → Identity — not a third-party form plugin. Showing requests go to Bookings, not Contact.

8. Front-end chrome (demo only)

Concept bannerTop bar “fiction only.” Turn off: Customize → Identity.
Colors switcherFloating control on the preview. Not a buyer setting — use Customize → Colors.
Chat bubbleConcept assistant in the corner. Sample answers only.
Author badge“Concept by Matt Hummel.” Removable; link is rel="nofollow noopener".

9. Demo content

Preferred: Tools → Seed Acreline demo or wp ks seed. Safe to run again — slugs update, they do not duplicate. Creates Home, Listings, Areas, Guide, Agents, Contact, Book a showing, Blog, eight listings, three agents, menus, and sample posts.

Manual WXR: see Demos/README.txt in this pack. Tools → Import → WordPress (install the official importer if asked). Do not put XML inside the theme folder for a WordPress.org upload.

Concept photos are Unsplash hotlinks, not files in the zip. Replace them from the media library on a client site.

Sample townships in filters: North Ridge, Mill Creek, Oak Hollow (stored keys Cumberland, Straban, Franklin — labels are what buyers see).

10. Child theme

Upload acreline-child.zip. Template: acreline. Text domain: acreline-child. Put CSS in the child style.css. Do not edit parent Blade or PHP if you want clean updates from the theme-latest zip.

/* Example — child style.css */ .site-header { /* header tweaks */ }

Keep a child theme for CSS. After a parent update, Customizer and ks_* meta are unchanged.

11. Updating the theme

  1. Appearance → Update Theme (or upload a newer acreline.zip).
  2. GitHub zip: release tag theme-latest on matthummel-pa/wp-acreline.
  3. PAT: Contents: Read. Add Actions: Read and write only for Rebuild zip on GitHub.
  4. Theme files only — pages, listings, and uploads stay put.

If Update Theme 404s, the running PHP still has an old repo slug — upload inner acreline.zip once, then the updater works. Do not rename the install folder, ks_* meta, or the keystone/v1 REST namespace.

12. Translation

Text domain acreline. Domain path /languages. A .pot ships with the theme. Loco Translate or Poedit work. Gettext calls use the literal string 'acreline' (Theme Check).

RTL: not supported. WPML / Polylang: not bundled and not tested. WooCommerce: not used.

13. SEO, analytics, and privacy

Native title, description, canonical, Open Graph, Twitter, BreadcrumbList JSON-LD. Yields to Yoast / Rank Math / SEOPress / AIOSEO. Do not put Google Analytics IDs in the theme Customizer. There is no theme SEO metabox (plugin territory).

The theme does not set marketing cookies. The concept chat is on-page JavaScript only. Seed may create a Privacy Policy page stub — replace it with your office policy before a client site goes public.

14. Browsers, accessibility, performance

Chrome, Firefox, Safari, Edge (current two versions). Responsive. High-resolution / retina: SVG house mark; raster logo from Site Identity.

WCAG 2.2 AA intent: 4.5:1 body contrast, 44px targets, :focus-visible rings, reduced motion. Skip link to #main.

Host: PHP 8.3+, 128 MB memory (256 MB recommended), HTTPS, mod_rewrite or nginx equivalents. Compiled CSS/JS live in public/build/ — do not delete that folder.

15. File structure (theme zip)

acreline/ style.css Theme header (name, version, license) screenshot.png Appearance → Themes thumbnail (1200×900) readme.txt Store parser functions.php Sage bootstrap app/ PHP (Customizer, metaboxes, CPT fallback, updater) resources/views/ Blade templates resources/css/ Tokens in keystone.css; card-lock.css is last public/build/ Compiled Vite CSS/JS (required) public/images/ Brand SVG vendor/ Production Composer (Acorn) languages/ acreline.pot

Git source does not commit vendor/ or public/build/. Store zips already include both. After a git clone: npm run build and composer install --no-dev.

Outer pack also has acreline-child.zip, acreline-core.zip, Documentation/, Demos/, Licensing/.

16. FAQ

Where do I change the phone number?

Customize → Identity.

How do I hide the concept banner?

Customize → Identity → uncheck “Show concept demo banner and author badge.”

How do I turn off the homepage hero animation?

Customize → Header → uncheck “Animate homepage hero image.” The photo stays; it no longer pans.

How do I turn on listing-search tilt on phones?

Customize → Header → check “Tilt listing search on mobile.” Off by default. Does nothing on desktop, without sensors, if permission is denied, or if the visitor prefers reduced motion.

Can I use a page builder?

Not supported. Fields are classic metaboxes on purpose. Gutenberg optimized: No.

Does this connect to my MLS?

No. Sample inventory only. MLS number on a listing is a text field for demo/layout.

White screen: Vite manifest not found

The zip is missing public/build. Re-download the store zip, or from source run npm run build. Folder must be named acreline.

Blade edits do not show

wp acorn view:clear.

Do I need ACF?

No. Metaboxes are in the theme.

How do I add a listing?

Listings → Add New. Fill Listing details. Publish. It appears in search and on /listings/.

Showing form does nothing

Confirm permalinks are Post name. Check that keystone/v1/bookings is reachable (Acreline Core or the theme fallback). Look under Bookings in wp-admin.

Can I rename the theme folder?

No. Compiled asset URLs use /wp-content/themes/acreline/public/build/.

WooCommerce / WPML / RTL?

No / not tested / no.

Where is the license key?

There isn’t one. GPLv2 or later. No Freemius or Envato purchase-code nag.