LFW Page Builder

Page layouts your editors fill in, without the block editor.

Your site’s developer defines the layouts once: a page header, a section, questions and answers. Editors add them to a page, fill in the fields and publish, all in WordPress.

Free plugin · built, not public yet

What your editors see.

The developer decides how much editors may change, per site, per template or per page.

  • A Page layouts box On each matching page, editors add layouts, fill in the fields, reorder them and publish.
  • Set sections in a set order A fixed group gives a page its sections in order. Editors fill them in and cannot rearrange them.
  • Plain page fields A phone number or a launch date on a page, which the page’s template reads and prints.
  • The block editor out of the way A group can hide the block editor on its pages. Editors see the title and the sections, and nothing else to arrange.

How your developer sets it up.

Readable names in a file that lives with the site, the way ACF’s local JSON does.

  • Defined in code A JSON file in the theme or a PHP registration. Each layout is a set of fields, a template and its styles.
  • Where each group applies All pages, one template or one page by its address, like the location rules in Advanced Custom Fields.
  • Site settings pages Site-wide fields such as the main phone number, the alert bar and the footer, each on its own settings screen.
  • Download the configuration Settings writes the layouts in use as one JSON file, ready to keep in the theme.

Moving from Secure Custom Fields or ACF, and back.

Import
Field groups become Page Builder groups, and each page’s values are copied over. Flexible content becomes a flexible group; repeaters become lists.
Export
The reverse: field group files Secure Custom Fields loads, and each page’s values as ACF data.
Safe to run again
Neither direction deletes the other side’s data. Each reports what converted, what was approximated and what could not be converted.
Where
From the command line with WP-CLI, or under Settings with a preview first.

Works with the other LFW plugins.

When both plugins are active on a site:

  1. LFW Activity Logger: every save records what changed in words: a layout added, removed or replaced by name, and each field’s label with its value before and after. Settings pages are recorded the same way.
  2. LFW Editorial Workflow: a proposed change carries the page’s layouts and fields with it, and approval applies them.
  3. LFW Multilingual: a saved page gets a fresh capture for translation, and saving a settings page marks every page due.

Each plugin works without the others. Saving with no change records nothing.

What it never does.

Load from LFW
When a visitor opens a page, layouts, templates and styles come from your site’s database.
Run code
Templates are a small language with no logic. Every value is escaped or passed through an HTML allowlist, and links through a URL rule.
Delete content
Each page’s layouts and fields stay in its own custom fields, readable with no plugin. Deactivating the plugin removes nothing.

What it needs.

Your website
WordPress 6.4 or newer, PHP 7.4 or newer.
On its own
Everything editors and visitors use: the layouts, the Page layouts box, settings pages and rendering. The WP-CLI commands and the SCF and ACF import and export run on the site too.
Connected to LFW
Optional, for sites whose layouts LFW maintains. The site checks for layout changes every 15 minutes. A layout file in the theme still wins, and a failed check never changes a page.
License
GPL-2.0 or later.
Release
Version 1.4.0 is built and tested in LFW’s repository and not public yet.

Ask about it for your site.

Tell us how your editors work today and what they should not be able to change. We reply within one business day.