WP SiteBuilderOne Lite
Local business plugin for WordPress powered LiveCanvas websites
by SiteBuilderOne · github.com/sitebuilderone/wp-sitebuilderone-lite · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/sitebuilderone/wp-sitebuilderone-lite/archive/refs/heads/main.zipLightweight WordPress plugin for local business websites. Stores business data (branding, contact info, social media, integrations) in wp_options with zero external dependencies. Supports CSV import/export, full Google Local Business schema compliance, and three custom post types for Services, FAQs, and HowTos.
Lite version of: https://github.com/sitebuilderone/wp-sitebuilderone
Client Brief Workflow
This repo separates implementation instructions from client-specific strategy:
AGENTS.mdcontains repo, architecture, testing, and coding guidance.CLIENT.mdpoints to the active client brief for the current site.client-briefs/_template.mdis the reusable onboarding questionnaire.- For a new client, copy
client-briefs/_template.mdtoclient-briefs/client-name.md, fill it in, then updateCLIENT.mdso future content, SEO, service, FAQ, and page work uses the right business context. - In WordPress, SiteBuilderOne > Client Brief stores the same kind of client-specific onboarding context in the separate
sbo_client_briefoption, so it does not collide with live site settings insbo_options. - The Client Brief screen can import/export Markdown files that use the template's section headings and field labels, making it possible to move notes between files, client calls, AI drafts, and WordPress.
- The Client Brief screen can also fill missing live site fields from mapped brief values while preserving existing
sbo_optionsvalues.
Features
- ✅ Admin Settings Page — Single-page UI under Settings > SiteBuilderOne
- ✅ Client Brief Admin Page — Stores onboarding, SEO, content, and strategy notes under
sbo_client_brief - ✅ Shortcode Support —
[sbo_field name="one_business_name"]for templates - ✅ PHP Helper —
sbo_get('field_key')for direct use in code - ✅ CSV Import/Export — Bulk data management
- ✅ Google Local Business Schema — 36 fields for rich snippets
- ✅ Services CPT —
servicepost type with tags, custom meta fields, REST fields, Schema.org markup, and[sb1_services]shortcode - ✅ FAQ CPT —
faqpost type with answer meta, related-service linking, FAQ schema, and[sb1_faq]shortcode - ✅ HowTo CPT —
howtopost type with steps, supplies, total time, HowTo schema, and[sb1_howto]shortcode - ✅ Copy-Friendly Shortcodes — Reference panel with copy-to-clipboard in admin
- ✅ LiveCanvas Compatible — Works with LiveCanvas page builder
- ✅ Zero Dependencies — No ACF, no external plugins required
Quick Start
- Activate the plugin in WP Admin
- Go to Settings > SiteBuilderOne
- Fill in your business information
- Use shortcodes in pages/posts:
[sbo_field name="one_business_name"] - Or use PHP in templates:
echo sbo_get('one_business_name');
For detailed development instructions, see AGENTS.md.
Field Organization
- Branding (5 fields) — Logo, name, description, keywords, banner
- Marketing (3 fields) — Headline, support copy, marketing image
- Business Information (4 fields) — Name, phone, email
- Physical Address (9 fields) — Street, city, state, ZIP, country, lat/long, Google Maps
- Social Media (7 fields) — Facebook, LinkedIn, YouTube, Twitter/X, WordPress, Yelp, GitHub
- Business Schema Details (2 fields) — Price range, opening hours
- Integrations (6 fields) — Meta tags, Google Analytics, Search Console, Looker Studio, Bing Webmaster
Total: 36 fields
New website setup guide
- Settings > Media: Turn 'off' Organize my uploads into month- and year-based folders
Custom Post Types
Services
Services are managed under SiteBuilderOne > Services.
Each service supports:
- Featured image
- Short Description — displayed in the grid card
- Icon — image URL or CSS class (e.g.
fa-solid fa-gear) - CTA Button URL — optional call-to-action link
- Service Type — used in Schema.org markup (e.g.
Web Design) - Area Served — used in Schema.org markup (e.g.
Nationwide) - Service Tags — taxonomy for filtering
Single service pages use /services/{slug}. The /services path remains free for a custom landing page.
Shortcode: [sb1_services]
[sb1_services]
All parameters are optional:
| Parameter | Default | Description |
|---|---|---|
count |
-1 |
Number of services to show (-1 = all) |
columns |
3 |
Grid column count |
tag |
(all) | Filter by service tag slug |
orderby |
menu_order |
WP_Query orderby value |
order |
ASC |
ASC or DESC |
Examples:
[sb1_services]
[sb1_services columns="2" tag="featured"]
[sb1_services count="6" columns="3" orderby="date" order="DESC"]
PHP usage in theme templates
$services = new WP_Query([
'post_type' => 'service',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
]);
while ( $services->have_posts() ) : $services->the_post();
$short_desc = get_post_meta( get_the_ID(), '_sb1_short_description', true );
$icon = get_post_meta( get_the_ID(), '_sb1_icon', true );
$cta_url = get_post_meta( get_the_ID(), '_sb1_cta_url', true );
$type = get_post_meta( get_the_ID(), '_sb1_service_type', true );
$area = get_post_meta( get_the_ID(), '_sb1_service_area', true );
endwhile;
wp_reset_postdata();
Template override
Copy the plugin template to your theme to customise the markup:
{theme}/sb1-services/services-grid.php
FAQs
FAQs are managed under SiteBuilderOne > FAQs. Each FAQ has a Question (post title), a plain-text Answer, and an optional link to a Related Service. FAQPage schema is injected automatically when the shortcode is used.
The URL base can be changed under SiteBuilderOne > FAQ & HowTo.
Shortcode: [sb1_faq]
[sb1_faq]
All parameters are optional:
| Parameter | Default | Description |
|---|---|---|
count |
-1 |
Number of FAQs to show (-1 = all) |
service |
(all) | Filter by service slug or post ID |
orderby |
menu_order |
WP_Query orderby value |
order |
ASC |
ASC or DESC |
Examples:
[sb1_faq]
[sb1_faq service="web-design"]
[sb1_faq service="42" count="5" orderby="date" order="DESC"]
PHP usage in theme templates
$faqs = new WP_Query([
'post_type' => 'faq',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
]);
while ( $faqs->have_posts() ) : $faqs->the_post();
$answer = get_post_meta( get_the_ID(), '_sb1_faq_answer', true );
$related_service = get_post_meta( get_the_ID(), '_sb1_faq_related_service', true ); // post ID
endwhile;
wp_reset_postdata();
Template override
{theme}/sb1-faq/faq-list.php
HowTos
HowTos are managed under SiteBuilderOne > HowTos. Each HowTo supports a description, total time (ISO 8601), supplies list, and up to 10 numbered steps (name, instructions, image URL, optional URL). HowTo schema is injected automatically when the shortcode is used.
The URL base can be changed under SiteBuilderOne > FAQ & HowTo.
Shortcode: [sb1_howto]
[sb1_howto]
All parameters are optional:
| Parameter | Default | Description |
|---|---|---|
count |
-1 |
Number of HowTos to show (-1 = all) |
tag |
(all) | Filter by WordPress tag slug or ID (comma-separated for multiple) |
orderby |
menu_order |
WP_Query orderby value |
order |
ASC |
ASC or DESC |
Examples:
[sb1_howto]
[sb1_howto tag="smart-thermostats"]
[sb1_howto tag="hvac,installation" count="3" orderby="date" order="DESC"]
PHP usage in theme templates
$howtos = new WP_Query([
'post_type' => 'howto',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
]);
while ( $howtos->have_posts() ) : $howtos->the_post();
$description = get_post_meta( get_the_ID(), '_sb1_howto_description', true );
$total_time = get_post_meta( get_the_ID(), '_sb1_howto_total_time', true ); // ISO 8601, e.g. PT30M
$supplies = get_post_meta( get_the_ID(), '_sb1_howto_supplies', true ); // newline-delimited string
$steps = get_post_meta( get_the_ID(), '_sb1_howto_steps', true ); // array of ['name','text','image','url']
endwhile;
wp_reset_postdata();
Template override
{theme}/sb1-faq/howto-list.php
Business Data Shortcodes
[sbo_field]
Output any stored business field.
[sbo_field name="one_business_name"]
[sbo_field name="one_business_phone" default="Call us"]
[sbo_field name="one_google_map_embed" raw="true"]
[sbo_url]
Output a field value as an escaped URL.
[sbo_url name="one_home_url"]
[sbo_link] / [sbo_social_*]
[sbo_link name="one_home_url"]Visit our website[/sbo_link]
[sbo_social_facebook]
[sbo_social_linkedin width="32" height="32"]
Social icon shortcodes render nothing if the corresponding URL field is empty.