How Promptless WP Stores Data
Promptless WP adds no database tables. A page’s sections are stored as post meta on the page, site-wide settings as WordPress options, and everything goes through the standard WordPress functions, so ordinary WordPress backups, migrations and exports carry it.
Page content
Section titled “Page content”| Meta key | What it holds |
|---|---|
_aisb_sections | The page’s sections, as structured data. This is the page content. |
_aisb_enabled | Marks the page as a Promptless page. |
_aisb_display_mode | Which template the page uses: the theme’s, full width, or canvas. |
_aisb_sections_backup, _aisb_sections_backup_time, _aisb_sections_backup_user | The previous version of the sections, kept on every save as a one-step safety copy. |
_aisb_page_intent, _aisb_page_intent_override | The page’s purpose (home, contact, product…) as the connector hinted it and as an editor overrode it; used for structured data. |
_aisb_editor_lock | Who has the page open in the editor, so two people do not overwrite each other. Removed when the plugin is deactivated. |
_aisb_content_synced, _aisb_content_synced_at | That, and when, the sections were last copied into the page’s normal content (see below). |
_promptless_old_path | Earlier addresses of the page, one row each, so they keep redirecting after a rename, move or consolidation. See Redirects. |
Sections are also kept in WordPress revisions (since 1.8.1), so every save is a version you can compare and restore. See Revision history.
Images the plugin adds to the Media Library carry their own meta —
_aisb_ai_generated and _aisb_ai_provider for AI images, the _aisb_stock_*
keys (provider, photographer, licence, source) for stock photos, and
_aisb_uploaded_by_connector for uploads from the connector.
The page’s normal content
Section titled “The page’s normal content”Every save also writes the sections into the page’s ordinary content as
editable blocks, with an excerpt. That is what WordPress search, RSS feeds,
the REST API, excerpts and SEO plugins read. The sections in _aisb_sections
stay the source of truth; the ordinary content is regenerated from them.
Site-wide settings
Section titled “Site-wide settings”| Option | What it holds |
|---|---|
aisb_global_settings | Colours, typography, buttons, cards, spacing — the design system. |
aisb_business_settings | Business identity: name, address, contact details, used in structured data and maps. |
aisb_ai_settings, aisb_ai_image_settings | AI provider settings and API keys. |
aisb_custom_color_presets | Saved colour palettes. |
aisb_reusable_elements | Reusable text snippets for the [re:KEY] shortcode. |
aisb_modals | Modal definitions. |
aisb_data_protection_settings | Whether uninstalling deletes data (off by default). |
aisb_auth_key_hash | The connector’s key, stored hashed. |
Staged global-settings changes live in a WordPress Customizer changeset until applied; see Staging global settings changes.
Hooks for developers
Section titled “Hooks for developers”Actions:
| Action | When it fires |
|---|---|
aisb_after_sections_saved( $post_id, $sections ) | After a page’s sections are saved — from the editor, the connector, or a palette relink. |
aisb_after_global_settings_changed | After the design system changes, including when a staged change is applied. |
aisb_register_section_renderers | While section types are registered; register or replace a renderer here. |
aisb_register_audit_checks, aisb_register_schema_providers, aisb_register_ai_providers | While those registries are built; add your own. |
aisb_postgrid_card_section | Inside each post grid card, for adding output. |
Filters:
| Filter | What it changes |
|---|---|
aisb_get_sections( $sections, $post_id ) | The sections read for a page before rendering. |
aisb_section_data( $section, $index, $post_id ) | One section’s data just before it renders. |
aisb_postgrid_query_args, aisb_postgrid_available_filters | A post grid’s query and the filters it offers. |
aisb_page_redirect_url | The address a legacy path redirects to. |
aisb_department_post_types | Which post types department scoping applies to. |
aisb_use_optimized_css | Return false to load one combined stylesheet instead of per-section files. |
Reading a page’s sections in your own code:
$sections = get_post_meta( $post_id, '_aisb_sections', true );if ( is_array( $sections ) ) { foreach ( $sections as $section ) { // $section['type'] is hero, features, faq…; $section['content'] holds its fields. }}Treat the structure as read-only from outside the plugin; write through the editor or the connector, which sanitise, keep the backup copy and create the revision.
Backups, migrations and uninstalling
Section titled “Backups, migrations and uninstalling”- Backups: any full-site backup (database plus uploads) includes all Promptless content. Nothing lives outside the database except uploaded images.
- Migrations: the content moves with the database. Use the Domain Migration Tool when the address changes, because saved content can contain absolute links.
- Uninstalling: deleting the plugin keeps all content unless delete data on uninstall is switched on in the plugin’s data protection settings. It is off by default.