Dynamic Month & Year into Posts 1.0.6
Read release notes
1.0.6 - New: Yoast SEO Support 1.0.5 - Multiple Language Support: Shortcode renders your site’s defined language. - New: [date] shortcode for today’s date. - WordPress 5.6 Compatibility
Gatilab Products
Improvements, fixes, and the details behind each release.
Release history across our plugins and themes.
1.0.6 - New: Yoast SEO Support 1.0.5 - Multiple Language Support: Shortcode renders your site’s defined language. - New: [date] shortcode for today’s date. - WordPress 5.6 Compatibility
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.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.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.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.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.php_checksum (table version 1.1), back-filled for existing PHP-enabled blocks on upgrade.<head> rather than inlined at every placement; library HTML is minified like the inline path already was.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.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.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.clamp(), proper measure (65ch), styled lists, blockquotes, code, kbd, tables. ~3KB inlined when enabled.<head> when enabled.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.[page_block id="123"] and [page_block slug="hero-section"] shortcodes.gt_pb_get_positions() filter — theme-independent WP core hooks (wp_head, wp_footer, the_content, loop_start, etc.).