-
Stable
Fixed toolbar button registration in block editor for GT Link inserter.
Read full notes
3 changes
- Fixed toolbar button registration in block editor for GT Link inserter.
- Added selected-text autofill in GT Link inserter search field.
- Improved redirect detection for WordPress installs in subdirectories.
-
Stable
Enhance block editor integration with additional dependencies and improved format registration
Read full notes
1 change
- Enhance block editor integration with additional dependencies and improved format registration
-
Stable
Minor internal hardening and cleanup.
Read full notes
1 change
- Minor internal hardening and cleanup.
-
Stable
Fixed uninstall to preserve links and settings data across reinstalls.
Read full notes
1 change
- Fixed uninstall to preserve links and settings data across reinstalls.
-
Stable
Initial release.
Read full notes
1 change
-
Stable
Added a per-section Defer CSS option beside Load CSS from a file in both the visual builder and Block Editor. Off by default.
Read full notes
4 changes
- Added a per-section Defer CSS option beside Load CSS from a file in both the visual builder and Block Editor. Off by default.
- Deferred files use non-blocking print media and switch to all media on load, with a noscript stylesheet fallback for visitors without JavaScript.
- Preserve deferred loading through saves and draft recovery. Builder previews continue to apply section CSS immediately, and failed file generation retains the inline fallback.
- Added regression coverage for mixed loading modes, duplicate CSS, head/body deduplication, preview behavior, and editor save payloads.
-
Stable
Dropin migration: wp gt-pb migrate-library [--dry-run] [--overwrite] (or Settings -> Tools -> Import from dropin) copies the Marketers Delight md_page_blocks table into this plugin preserving block IDs, so existing [page_block id="N"]…
Read full notes
14 changes
- Dropin migration:
wp gt-pb migrate-library [--dry-run] [--overwrite] (or Settings -> Tools -> Import from dropin) copies the Marketers Delight md_page_blocks table into this plugin preserving block IDs, so existing [page_block id="N"] shortcodes and blockId block references keep resolving. - Blocks can reference the library again:
blockId is a registered attribute and renders the library row server-side. Editing one library block updates every placement, instead of each block carrying its own copy. - The block editor understands the reference: a linked block shows the library block's title, ID, and badges, previews through the library's own render route (so PHP, shortcodes, and wpautop match the front end), and hides the inline HTML/CSS/JS editors that render_block() would ignore. Missing and unpublished targets are called out instead of silently rendering nothing.
- Library modal offers Link alongside Copy code, so a placement can follow the library or take a one-off copy, deliberately.
- Unlink detaches a copy: the library code is written into the block's own attributes and the reference is dropped.
- Fixed two paths that silently unlinked migrated blocks. The editor's client-side block registration did not declare
blockId, so re-saving a page dropped it; the visual builder normalized it away on load and reserialized every section without it. Both now round-trip the link, and the builder locks a linked section's editors instead of accepting edits that never render. marketers-delight/inline-page-block is now covered by the block-name migration alongside marketers-delight/page-block.- Security PHP execution now requires two independent gates — a site constant (
GT_PB_ALLOW_PHP, or MD_ALLOW_PHP_SNIPPETS for sites coming from the dropin) and a save-time content checksum. Content mutated directly in the database no longer executes; it falls back to stripping PHP tags. Inline blocks need a further opt-in (GT_PB_ALLOW_INLINE_PHP / MD_ALLOW_INLINE_PHP) because post_content carries no separate checksum. - Display conditions work: they are saved from the block edit screen and evaluated when rendering positioned blocks (post types, page types, specific post IDs). Previously the UI existed but nothing was stored or checked.
- Dropin
md_hook_* positions are remapped to plugin positions and theme regions on import; anything with no equivalent is cleared to shortcode/block only and reported, rather than silently never rendering. - Schema: adds
php_checksum (table version 1.1), back-filled for existing PHP-enabled blocks on upgrade. - Render parity with the dropin, from diffing real output on live sites: library CSS is emitted once per request and hoisted into
<head> rather than inlined at every placement; library HTML is minified like the inline path already was. - Fixed
minify_css() collapsing the whitespace around + inside calc(), clamp(), min() and max(). The space is required there, so clamp(6.75rem, 6rem + 2.2vw, 9rem) became invalid and the whole declaration was dropped — section padding computed to 0 and clamped font sizes fell back to inherited. + is still collapsed in sibling selectors, where that is correct. - Fixed
minify_css() corrupting quoted strings. [style*="font-weight: 300"] and [style*="font-weight:300"] are different selectors, and collapsing the space merged them so one stopped matching. Quoted strings and url() payloads are now preserved verbatim.
-
Stable
REST API (pbb/v1): full CRUD for library blocks plus /duplicate and /render endpoints — list filtering, search, pagination, and status counts via headers.
Read full notes
8 changes
- REST API (pbb/v1): full CRUD for library blocks plus /duplicate and /render endpoints — list filtering, search, pagination, and status counts via headers.
- New library admin panel: card grid with live preview thumbnails (lazy-loaded), search, status filter tabs, duplicate / trash / restore / delete, and copy-shortcode — the classic list table remains at ?view=list.
- Block editor: the Page Block defaults to a rendered live preview (auto-sizing iframe with theme styles) when it has content; toggle Preview/Code from the block toolbar.
- Block editor: Browse library — search the library in a modal and insert a copy of any saved block into the current Page Block.
- Responsive preview: desktop / tablet (768px) / mobile (390px) viewport presets, plus a dark-scheme toggle (data-theme="dark").
- Collapsible live preview pane under the code editor — re-renders as you type (server-rendered when PHP/wpautop is on).
- Copy button for the active code tab.
- Save to library: promote an inline block to a reusable library Page Block (admins) straight from the editor.
-
Stable
FIX: CSS class autocomplete was broken because PHP sent cssClasses as a JSON object (due to array_unique key gaps) instead of a JSON array. Added array_values() wrapper so Array.isArray() passes on the JS side.
Read full notes
1 change
- FIX CSS class autocomplete was broken because PHP sent
cssClasses as a JSON object (due to array_unique key gaps) instead of a JSON array. Added array_values() wrapper so Array.isArray() passes on the JS side.
-
Stable
NEW: Typography.min.css toggle — system-font-based typography defaults with responsive heading sizes via clamp(), proper measure (65ch), styled lists, blockquotes, code, kbd, tables. ~3KB inlined when enabled.
Read full notes
2 changes
- NEW Typography.min.css toggle — system-font-based typography defaults with responsive heading sizes via
clamp(), proper measure (65ch), styled lists, blockquotes, code, kbd, tables. ~3KB inlined when enabled. - Three independent toggles under Settings → Page Blocks → Frontend CSS: Semantic Reset, Typography, Utility Classes.
-
Stable
NEW: Semantic Reset CSS (~1KB) — modern reset with box-sizing, list defaults, accessible images, prefers-reduced-motion support. Inlined in <head> when enabled.
Read full notes
2 changes
- NEW Semantic Reset CSS (~1KB) — modern reset with box-sizing, list defaults, accessible images, prefers-reduced-motion support. Inlined in
<head> when enabled. - NEW Utility Classes — ~330 Tailwind-inspired utilities (grid, flex, spacing, typography, colors, borders, shadows, etc. +
sm:/md:/lg: responsive variants). Frontend inlines ONLY the rules actually used on the page (parses post_content for class names). Builder loads the full set for autocomplete.
-
Stable
New: Top-level "Page Blocks" admin menu (moved out of Settings) with sub-pages: All Page Blocks (list table), Add New, Settings, License.
Read full notes
5 changes
- NEW Top-level "Page Blocks" admin menu (moved out of Settings) with sub-pages: All Page Blocks (list table), Add New, Settings, License.
- NEW Database-backed reusable blocks with
[page_block id="123"] and [page_block slug="hero-section"] shortcodes. - NEW Admin list table with bulk actions (trash/restore/delete), search, status filtering.
- NEW Admin edit form with Monaco editors for HTML/CSS/JS, live preview, position picker.
- NEW
gt_pb_get_positions() filter — theme-independent WP core hooks (wp_head, wp_footer, the_content, loop_start, etc.).