{"id":116101,"date":"2020-05-19T17:26:45","date_gmt":"2020-05-19T17:26:45","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/flexblocks\/"},"modified":"2026-03-31T16:26:18","modified_gmt":"2026-03-31T16:26:18","slug":"generateblocks","status":"publish","type":"plugin","link":"https:\/\/ka.wordpress.org\/plugins\/generateblocks\/","author":10080727,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.1","stable_tag":"2.2.1","tested":"6.9.4","requires":"6.5","requires_php":"7.2","requires_plugins":null,"header_name":"GenerateBlocks","header_author":"Tom Usborne","header_description":"A small but powerful collection of flexible blocks to help you design your content.","assets_banners_color":"6f7384","last_updated":"2026-03-31 16:26:18","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/generatepress.com","header_plugin_uri":"https:\/\/generateblocks.com","header_author_uri":"https:\/\/tomusborne.com","rating":4.8,"author_block_rating":0,"active_installs":200000,"downloads":3306029,"num_ratings":121,"support_threads":7,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"edge22","date":"2020-05-20 18:08:12"},"1.0.1":{"tag":"1.0.1","author":"edge22","date":"2020-05-25 17:09:53"},"1.0.2":{"tag":"1.0.2","author":"edge22","date":"2020-05-28 19:31:32"},"1.1.0":{"tag":"1.1.0","author":"edge22","date":"2020-07-07 16:55:18"},"1.1.1":{"tag":"1.1.1","author":"edge22","date":"2020-07-07 17:26:31"},"1.1.2":{"tag":"1.1.2","author":"edge22","date":"2020-08-12 16:54:05"},"1.2.0":{"tag":"1.2.0","author":"edge22","date":"2020-12-10 19:01:05"},"1.3.0":{"tag":"1.3.0","author":"edge22","date":"2021-01-13 18:20:59"},"1.3.1":{"tag":"1.3.1","author":"edge22","date":"2021-01-20 18:03:23"},"1.3.2":{"tag":"1.3.2","author":"edge22","date":"2021-03-03 21:59:46"},"1.3.3":{"tag":"1.3.3","author":"edge22","date":"2021-03-18 17:50:37"},"1.3.4":{"tag":"1.3.4","author":"edge22","date":"2021-07-12 16:30:07"},"1.3.5":{"tag":"1.3.5","author":"edge22","date":"2021-07-19 18:12:34"},"1.4.0":{"tag":"1.4.0","author":"edge22","date":"2021-10-26 16:48:42"},"1.4.1":{"tag":"1.4.1","author":"edge22","date":"2022-01-17 17:48:44"},"1.4.2":{"tag":"1.4.2","author":"edge22","date":"2022-02-09 18:07:14"},"1.4.3":{"tag":"1.4.3","author":"edge22","date":"2022-05-17 15:57:58"},"1.4.4":{"tag":"1.4.4","author":"edge22","date":"2022-05-31 16:38:29"},"1.5.0":{"tag":"1.5.0","author":"edge22","date":"2022-06-21 16:18:10"},"1.5.1":{"tag":"1.5.1","author":"edge22","date":"2022-06-21 22:05:32"},"1.5.2":{"tag":"1.5.2","author":"edge22","date":"2022-06-29 16:05:24"},"1.5.3":{"tag":"1.5.3","author":"edge22","date":"2022-07-12 16:27:17"},"1.5.4":{"tag":"1.5.4","author":"edge22","date":"2022-07-14 20:30:18"},"1.6.0":{"tag":"1.6.0","author":"edge22","date":"2022-12-20 18:45:52"},"1.7.0":{"tag":"1.7.0","author":"edge22","date":"2023-02-21 16:42:13"},"1.7.1":{"tag":"1.7.1","author":"edge22","date":"2023-03-01 20:23:46"},"1.7.2":{"tag":"1.7.2","author":"edge22","date":"2023-03-02 22:09:42"},"1.7.3":{"tag":"1.7.3","author":"edge22","date":"2023-03-06 18:46:43"},"1.8.0":{"tag":"1.8.0","author":"edge22","date":"2023-07-18 15:14:18"},"1.8.1":{"tag":"1.8.1","author":"edge22","date":"2023-07-25 15:51:46"},"1.8.2":{"tag":"1.8.2","author":"edge22","date":"2023-11-14 15:47:19"},"1.8.3":{"tag":"1.8.3","author":"edge22","date":"2024-02-26 16:06:32"},"1.9.0":{"tag":"1.9.0","author":"edge22","date":"2024-04-23 17:18:16"},"1.9.1":{"tag":"1.9.1","author":"edge22","date":"2025-02-12 15:18:42"},"2.0.0":{"tag":"2.0.0","author":"edge22","date":"2025-02-12 15:52:53"},"2.0.1":{"tag":"2.0.1","author":"edge22","date":"2025-02-12 16:23:58"},"2.0.2":{"tag":"2.0.2","author":"edge22","date":"2025-04-08 16:53:10"},"2.1.0":{"tag":"2.1.0","author":"edge22","date":"2025-05-06 16:41:49"},"2.1.1":{"tag":"2.1.1","author":"edge22","date":"2025-08-26 15:53:33"},"2.1.2":{"tag":"2.1.2","author":"edge22","date":"2025-10-22 19:00:12"},"2.2.0":{"tag":"2.2.0","author":"edge22","date":"2025-12-09 18:47:10"},"2.2.1":{"tag":"2.2.1","author":"edge22","date":"2026-03-31 16:26:18"}},"upgrade_notice":[],"ratings":{"1":3,"2":0,"3":4,"4":1,"5":113},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2336822,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2336822,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3239461,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3239461,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3239461,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"generateblocks\/query-no-results":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"generateblocks\/query-no-results","title":"No Results","category":"generateblocks","description":"Display blocks when your query has no results.","keywords":["no results"],"version":"1.0.0","textdomain":"generateblocks","attributes":{},"ancestor":["generateblocks\/query"],"supports":{"align":false,"className":false,"customClassName":false,"html":false},"editorScript":"file:.\/index.js","usesContext":["generateblocks\/queryData"]},"generateblocks\/query":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"generateblocks\/query","title":"Query","category":"generateblocks","description":"Query posts and display them in a loop.","keywords":["query","loop","posts"],"version":"1.0.0","textdomain":"generateblocks","attributes":{"uniqueId":{"type":"string","default":""},"tagName":{"type":"string","default":"","enum":["div","section","article","aside","header","footer","nav","main"]},"styles":{"type":"object","default":{}},"css":{"type":"string","default":""},"globalClasses":{"type":"array","default":[]},"htmlAttributes":{"type":"object","default":{}},"queryType":{"type":"string","default":"WP_Query"},"paginationType":{"type":"string","default":"standard","enum":["standard","instant"]},"query":{"type":"object","default":{}},"inheritQuery":{"type":"boolean","default":false},"showTemplateSelector":{"type":"boolean","default":false}},"supports":{"align":false,"className":false},"editorScript":"file:.\/index.js","editorStyle":["file:.\/index.css"],"providesContext":{"generateblocks\/query":"query","generateblocks\/queryId":"uniqueId","generateblocks\/inheritQuery":"inheritQuery","generateblocks\/paginationType":"paginationType","generateblocks\/queryType":"queryType"}},"generateblocks\/query-page-numbers":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"generateblocks\/query-page-numbers","title":"Page Numbers","category":"generateblocks","description":"Display page numbers for a paginated query loop.","keywords":["pagination","numbers"],"version":"1.0.0","textdomain":"generateblocks","ancestor":["generateblocks\/query"],"attributes":{"uniqueId":{"type":"string","default":""},"tagName":{"type":"string","default":"","enum":["div","section","nav"]},"styles":{"type":"object","default":{}},"css":{"type":"string","default":""},"globalClasses":{"type":"array","default":[]},"htmlAttributes":{"type":"object","default":{}},"midSize":{"type":"number","default":3}},"supports":{"align":false,"className":false},"editorScript":"file:.\/index.js","editorStyle":["file:.\/index.css"],"usesContext":["generateblocks\/queryData","generateblocks\/queryType","generateblocks\/query","generateblocks\/queryId","generateblocks\/inheritQuery","generateblocks\/paginationType","generateblocks\/loopIndex","generateblocks\/loopItem"]},"generateblocks\/text":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"generateblocks\/text","title":"Text","category":"generateblocks","description":"A text element where you can choose your own tag name, content, and styles.","keywords":["text","heading","headline","paragraph"],"version":"1.0.0","textdomain":"generateblocks","attributes":{"uniqueId":{"type":"string","default":""},"tagName":{"type":"string","default":"","enum":["p","span","div","h1","h2","h3","h4","h5","h6","a","button","figcaption","li"]},"content":{"type":"rich-text","source":"rich-text","selector":".gb-text"},"styles":{"type":"object","default":{}},"css":{"type":"string","default":""},"globalClasses":{"type":"array","default":[]},"htmlAttributes":{"type":"object","default":{}},"icon":{"type":"string","source":"html","selector":".gb-shape"},"iconLocation":{"type":"string","default":"before"},"iconOnly":{"type":"boolean","default":false}},"supports":{"align":false,"className":false,"splitting":true},"usesContext":["postId","postType","generateblocks\/query","generateblocks\/queryData","generateblocks\/queryType","generateblocks\/inheritQuery","generateblocks\/queryId","generateblocks\/paginationType","generateblocks\/loopIndex","generateblocks\/loopItem"],"editorScript":"file:.\/index.js","editorStyle":["file:.\/index.css"]},"generateblocks\/media":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"generateblocks\/media","title":"Image","category":"generateblocks","description":"A self-closing media element.","keywords":["image","media","img"],"version":"1.0.0","textdomain":"generateblocks","attributes":{"uniqueId":{"type":"string","default":""},"tagName":{"type":"string","default":"","enum":["img"]},"styles":{"type":"object","default":{}},"css":{"type":"string","default":""},"globalClasses":{"type":"array","default":[]},"htmlAttributes":{"type":"object","default":{}},"mediaId":{"type":"number","default":0},"linkHtmlAttributes":{"type":"object","default":{}}},"supports":{"align":false,"className":false},"editorScript":"file:.\/index.js","editorStyle":["file:.\/index.css"],"usesContext":["postId","generateblocks\/loopItem","generateblocks\/loopIndex"]},"generateblocks\/shape":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"generateblocks\/shape","title":"Shape","category":"generateblocks","description":"A custom SVG shape.","keywords":["icon","shape","svg","image"],"version":"1.0.0","textdomain":"generateblocks","attributes":{"uniqueId":{"type":"string","default":""},"html":{"type":"string","source":"html","selector":".gb-shape"},"styles":{"type":"object","default":{}},"css":{"type":"string","default":""},"globalClasses":{"type":"array","default":[]},"htmlAttributes":{"type":"object","default":{}}},"supports":{"align":false,"className":false},"editorScript":"file:.\/index.js","editorStyle":["file:.\/index.css"],"usesContext":["postId"]},"generateblocks\/element":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"generateblocks\/element","title":"Container","category":"generateblocks","description":"An HTML element that you can add blocks inside of.","keywords":["element","container","group"],"version":"1.0.0","textdomain":"generateblocks","attributes":{"uniqueId":{"type":"string","default":""},"tagName":{"type":"string","default":"","enum":["div","section","article","aside","header","footer","nav","main","figure","a","ul","ol","li","dl","dt","dd"]},"styles":{"type":"object","default":{}},"css":{"type":"string","default":""},"globalClasses":{"type":"array","default":[]},"htmlAttributes":{"type":"object","default":{}},"align":{"type":"string","default":""}},"supports":{"align":false,"className":false},"usesContext":["postId","postType","generateblocks\/query","generateblocks\/queryData","generateblocks\/queryType","generateblocks\/inheritQuery","generateblocks\/queryId","generateblocks\/paginationType","generateblocks\/loopIndex","generateblocks\/loopItem"],"editorScript":"file:.\/index.js","editorStyle":["file:.\/index.css"]},"generateblocks\/looper":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"generateblocks\/looper","title":"Looper","category":"generateblocks","description":"Loops its children based on the data provided by the Query block.","keywords":["query","loop","posts"],"version":"1.0.0","textdomain":"generateblocks","ancestor":["generateblocks\/query"],"attributes":{"uniqueId":{"type":"string","default":""},"tagName":{"type":"string","default":"","enum":["div","section","article","aside","header","footer","nav","main","ul","ol"]},"styles":{"type":"object","default":{}},"css":{"type":"string","default":""},"globalClasses":{"type":"array","default":[]},"htmlAttributes":{"type":"object","default":{}}},"supports":{"align":false,"className":false},"editorScript":"file:.\/index.js","editorStyle":["file:.\/index.css"],"usesContext":["postId","postType","generateblocks\/queryId","generateblocks\/query","generateblocks\/inheritQuery","generateblocks\/queryData","generateblocks\/queryType","generateblocks\/loopIndex","generateblocks\/loopItem"],"allowedBlocks":["generateblocks\/loop-item"]},"generateblocks\/loop-item":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"generateblocks\/loop-item","title":"Loop Item","category":"generateblocks","description":"The item that is looped inside of the Looper.","keywords":["loop","loop item"],"version":"1.0.0","textdomain":"generateblocks","parent":["generateblocks\/looper"],"attributes":{"uniqueId":{"type":"string","default":""},"tagName":{"type":"string","default":"","enum":["div","li","a","article","section","aside"]},"styles":{"type":"object","default":{}},"css":{"type":"string","default":""},"globalClasses":{"type":"array","default":[]},"htmlAttributes":{"type":"object","default":{}}},"supports":{"align":false,"className":false},"editorScript":"file:.\/index.js","editorStyle":["file:.\/index.css"],"usesContext":["generateblocks\/queryData","generateblocks\/queryType","generateblocks\/loopIndex","generateblocks\/loopItem","generateblocks\/loopPreviewId","generateblocks\/hasLoopItems","generateblocks\/queryId","generateblocks\/setLoopPreviewId","postId"]}},"tagged_versions":["1.0","1.0.1","1.0.2","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.5.0","1.5.1","1.5.2","1.5.3","1.5.4","1.6.0","1.7.0","1.7.1","1.7.2","1.7.3","1.8.0","1.8.1","1.8.2","1.8.3","1.9.0","1.9.1","2.0.0","2.0.1","2.0.2","2.1.0","2.1.1","2.1.2","2.2.0","2.2.1"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[4121,1332,148076,1084,166],"plugin_category":[46],"plugin_contributors":[78611],"plugin_business_model":[],"class_list":["post-116101","plugin","type-plugin","status-publish","hentry","plugin_tags-blocks","plugin_tags-editor","plugin_tags-gutenberg","plugin_tags-page-builder","plugin_tags-posts","plugin_category-editor-and-writing","plugin_contributors-edge22","plugin_committers-edge22","plugin_support_reps-alvindcaesar","plugin_support_reps-diggeddy","plugin_support_reps-leohsiang","plugin_support_reps-yingscarlett"],"banners":{"banner":"https:\/\/ps.w.org\/generateblocks\/assets\/banner-772x250.png?rev=3239461","banner_2x":"https:\/\/ps.w.org\/generateblocks\/assets\/banner-1544x500.png?rev=3239461","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/generateblocks\/assets\/icon.svg?rev=3239461","icon":"https:\/\/ps.w.org\/generateblocks\/assets\/icon.svg?rev=3239461","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Add incredible versatility to your editor without bloating it with tons of one-dimensional blocks. With GenerateBlocks, you can learn a handful of blocks deeply and use them to build anything.<\/p>\n\n<p><a href=\"https:\/\/generatepress.com\/blocks?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">GenerateBlocks<\/a> works hand-in-hand with <a href=\"https:\/\/generatepress.com\/theme?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=generateblocks-readme\">GeneratePress<\/a>, but is built to work with any theme.<\/p>\n\n<p>Looking for more features? Check out <a href=\"https:\/\/generatepress.com\/blocks?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">GenerateBlocks Pro<\/a>.<\/p>\n\n<h4>Container<\/h4>\n\n<p>Organize your content into rows and sections. The Container block is the foundation of your content, allowing you to design unique sections for your content.<\/p>\n\n<h4>Grid<\/h4>\n\n<p>Create advanced layouts with flexible grids. The Grid block gives you the ability to create any kind of layout you can imagine.<\/p>\n\n<h4>Text<\/h4>\n\n<p>Craft text-rich content with advanced typography. Everything from headings to paragraphs - take full control of your text.<\/p>\n\n<h4>Button<\/h4>\n\n<p>Drive conversions with beautiful buttons.<\/p>\n\n<h4>Query<\/h4>\n\n<p>Build a list of posts from any post type using advanced query parameters. Query post meta and option fields in GenerateBlocks Pro.<\/p>\n\n<h4>Image<\/h4>\n\n<p>Add images to your content to make a visual statement.<\/p>\n\n<h4>Shape<\/h4>\n\n<p>Add custom SVG shapes to your pages with ease.<\/p>\n\n<h4>Dynamic Tags<\/h4>\n\n<p>Use our powerful dynamic tags to display dynamic content inside your blocks.<\/p>\n\n<ul>\n<li>Post title<\/li>\n<li>Post excerpt<\/li>\n<li>Post permalink<\/li>\n<li>Post date<\/li>\n<li>Featured image<\/li>\n<li>Post meta<\/li>\n<li>Author meta<\/li>\n<li>Comment count<\/li>\n<li>Comments URL<\/li>\n<li>Author archives URL<\/li>\n<li>Author avatar URL<\/li>\n<li>Term list<\/li>\n<li>Previous posts URL<\/li>\n<li>Next posts URL<\/li>\n<li>Media<\/li>\n<\/ul>\n\n<p>In GenerateBlocks Pro, you get additional dynamic tags:<\/p>\n\n<ul>\n<li>Archive title<\/li>\n<li>Archive description<\/li>\n<li>Site option<\/li>\n<li>Term meta<\/li>\n<li>User meta<\/li>\n<li>Current year<\/li>\n<li>Site title<\/li>\n<li>Site tagline<\/li>\n<li>Loop index number<\/li>\n<li>Loop item<\/li>\n<\/ul>\n\n<h4>Performance<\/h4>\n\n<p>We take performance seriously. Minimal CSS is generated only for the blocks you need, and our HTML structure is as simple as possible while allowing for maximum flexibility.<\/p>\n\n<h4>Coding standards<\/h4>\n\n<p>Built to the highest coding standards for security, stability and future compatibility.<\/p>\n\n<h4>Fully responsive<\/h4>\n\n<p>Style your blocks for different screen sizes.<\/p>\n\n<ul>\n<li>Desktop: @media (min-width:1025px)<\/li>\n<li>Desktop &amp; Tablet: @media (min-width:768px)<\/li>\n<li>Tablet: @media (max-width:1024px) and (min-width:768px)<\/li>\n<li>Tablet &amp; Mobile: @media (max-width:1024px)<\/li>\n<li>Mobile: @media (max-width:767px)<\/li>\n<\/ul>\n\n<p>In GenerateBlocks Pro, you can create as many custom media queries as you need.<\/p>\n\n<h4>Documentation<\/h4>\n\n<p>Check out our <a href=\"https:\/\/learn.generatepress.com\/\">documentation<\/a> for more information on the individual blocks and how to use them.<\/p>\n\n<!--section=installation-->\n<p>There's two ways to install GenerateBlocks.<\/p>\n\n<ol>\n<li>Go to \"Plugins &gt; Add New\" in your Dashboard and search for: GenerateBlocks<\/li>\n<li>Download the .zip from WordPress.org, and upload the folder to the <code>\/wp-content\/plugins\/<\/code> directory via FTP.<\/li>\n<\/ol>\n\n<p>In most cases, #1 will work fine and is way easier.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20add%20your%20blocks%20to%20my%20page%3F\"><h3>How do I add your blocks to my page?<\/h3><\/dt>\n<dd><ul>\n<li>Create a new page or post<\/li>\n<li>Add a new block, and look for the \"GenerateBlocks\" category<\/li>\n<li>Choose your block and start building.<\/li>\n<li>It's always best to start with a Container block.<\/li>\n<\/ul><\/dd>\n<dt id=\"what%20theme%20should%20i%20use%3F\"><h3>What theme should I use?<\/h3><\/dt>\n<dd><p>GenerateBlocks was built to work hand-in-hand with <a href=\"https:\/\/generatepress.com\">GeneratePress<\/a>. However, it will work with any theme you choose.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>Security: Improve dynamic tag replacement security in the editor<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Security: Improve REST endpoint access control<\/li>\n<li>Security: Add dynamic tag validation middleware to stop unsafe meta references during save<\/li>\n<li>Feature: Add <code>generateblocks.media.imageAttributes<\/code> filter to control Media block auto-populated attributes<\/li>\n<li>Feature: Add grid-auto-columns field to Styles Builder<\/li>\n<li>Feature: Add grid-auto-rows field to Styles Builder<\/li>\n<li>Feature: Add grid-template-areas field to Styles Builder<\/li>\n<li>Feature: Add grid-area field to Styles Builder<\/li>\n<li>Feature: Add text-wrap field to Styles Builder<\/li>\n<li>Feature: Add global CSS values (inherit, initial, revert, revert-layer, unset) to SelectControl components<\/li>\n<li>Fix: Editor sidebar header alignment<\/li>\n<li>Fix: Search controls input styles in WordPress 6.9<\/li>\n<li>Fix: Undo behavior in editor when editing styles<\/li>\n<li>Fix: Unique ID regeneration when pasting a block before its original<\/li>\n<li>Fix: Block HTML attribute escaping in WordPress 6.9<\/li>\n<li>Tweak: Show standard icons in all libraries<\/li>\n<li>Tweak: Show compound selector symbol in Styles Builder list<\/li>\n<li>Tweak: Enforce template selector sizing overrides<\/li>\n<\/ul>\n\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Security: Restricted options REST API endpoint access for contributors\/editors<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Security: Remove sensitive values from REST API response for logged in users<\/li>\n<li>Fix: Disable image links in the editor<\/li>\n<li>Fix: Parse shortcodes in URL HTML attribute fields<\/li>\n<li>Fix: Keep existing image size when changing image in block<\/li>\n<li>Tweak: Improve image size field loading UI<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Feature: Enable full iframe editor<\/li>\n<li>Feature: Improve styles builder indicator dot system<\/li>\n<li>Feature: Add <code>static<\/code> value to the \"Position\" control<\/li>\n<li>Feature: Add <code>aria-label<\/code> field to all blocks<\/li>\n<li>Feature: Add <code>inline-grid<\/code> option<\/li>\n<li>Feature: Add inherited values as placeholders<\/li>\n<li>Fix: Missing \"current parent\" query parameter<\/li>\n<li>Fix: Fallback preview support in color picker<\/li>\n<li>Fix: Inability to type some units in the <code>UnitControl<\/code><\/li>\n<li>Fix: Block\/pattern preview styles<\/li>\n<li>Fix: IME issues with multi-select component<\/li>\n<li>Fix: Border sync button alignment in v1 blocks<\/li>\n<li>Fix: Single comment count option key in dynamic tags<\/li>\n<li>Fix: Custom at-rule switching in the editor<\/li>\n<li>Fix: Font family filter in the styles builder<\/li>\n<li>Fix: <code>UnitControl<\/code> values starting with a dash<\/li>\n<li>Fix: Image block selection in WP 6.8<\/li>\n<li>Fix: Dynamic tag parsing all blocks in Container at once<\/li>\n<li>Fix: Allow 0 as nested post meta key<\/li>\n<li>Fix: Ensure block style assets load in wp_head<\/li>\n<li>Fix: Dimension control tab order<\/li>\n<li>Fix: Conditional loading of instant pagination script<\/li>\n<li>Tweak: Improve editor performance<\/li>\n<li>Tweak: Always show popular user meta fields in dropdown<\/li>\n<li>Tweak: Add support for device visibility feature in Pro<\/li>\n<li>Tweak: Add <code>generateblocks_use_v1_blocks<\/code> filter<\/li>\n<li>Tweak: Improve default styles builder selectors\/shortcuts<\/li>\n<li>Tweak: Load permissions earlier in the editor<\/li>\n<li>Tweak: Improve block keywords<\/li>\n<li>Tweak: Sanitize block ID attribute value<\/li>\n<li>Tweak: Allow the <code>download<\/code> attribute to have a value<\/li>\n<li>Tweak: Add searching notice to styles builder<\/li>\n<li>Tweak: Add <code>generateblocks_block_css<\/code> filter<\/li>\n<li>Tweak: Add <code>generateblocks_process_block_css<\/code> action<\/li>\n<li>Tweak: Add default <code>alt<\/code> tag to images<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Fix: Image block selection in WP 6.8<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fix: WordPress.org zip package issue<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Security: Prevent logged-in contributors from querying private post content<\/li>\n<li>New: All blocks re-written from scratch for better performance and control<\/li>\n<li>New: Version 1 blocks still exist where used and function normally<\/li>\n<li>New: Version 1 blocks can be enabled by default with simple filter<\/li>\n<li>New: Element block - replaces the Container and Grid blocks<\/li>\n<li>New: Element blocks comes with Container and Grid variations in the block inserter<\/li>\n<li>New: Text block - replaces the Headline and Button blocks<\/li>\n<li>New: Text blocks comes with Headline, Text, and Button variations in the block inserter<\/li>\n<li>New: Query block - replaces the Query Loop block<\/li>\n<li>New: Looper block - replaces the Grid block inside of the Query block<\/li>\n<li>New: Loop Item block - replaces the Post Template (Container) in the Query block<\/li>\n<li>New: No Results block - add content that displays if no Query results are found<\/li>\n<li>New: Page Numbers block - add page numbers for pagination in your Query block<\/li>\n<li>New: Shape block - add any SVG shape to your pages<\/li>\n<li>New: Media block - replaces the Image block<\/li>\n<li>New: Local blocks now have the full styles builder found in GB Pro Global Styles<\/li>\n<li>New: Local blocks can now be designed at any breakpoint or nested rule<\/li>\n<li>New: Filter block design options in the editor based on whether they have a value<\/li>\n<li>New: Filter block design options in the editor based on whether they're inheriting a value<\/li>\n<li>New: Dynamic tags system. Insert dynamic data anywhere in your blocks<\/li>\n<li>New: Multiple dynamic tags can be inserted into a single block<\/li>\n<li>New: --gb-container-width CSS variable for getting the global max-width<\/li>\n<li>Performance: Local blocks now generate their CSS and HTML as you build in the editor<\/li>\n<li>Performance: Blocks are output as static HTML\/CSS on the frontend for better performance<\/li>\n<\/ul>\n\n<h4>1.9.1<\/h4>\n\n<ul>\n<li>Fix: Patterns not loading properly in Chrome<\/li>\n<li>Fix: Pattern search mixing up active libraries<\/li>\n<li>Fix: Broken pattern preview in bulk select mode<\/li>\n<li>Fix: Headline editor margin when set to div<\/li>\n<li>Tweak: Improve pattern preview loading performance<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Security: Disallow scripts in custom field values<\/li>\n<li>Feature: New Pattern Library<\/li>\n<li>Feature: Add support for new Global Styles in Pro<\/li>\n<li>Feature: Added opt-in defaults cache filter: <code>generateblocks_use_block_defaults_cache<\/code><\/li>\n<li>Feature: Added new <code>generateblocks_do_inline_styles<\/code> filter to force inline styles if needed<\/li>\n<li>Feature: Add styles indicators to local block controls if Global Styles exist<\/li>\n<li>Feature: Keep <code>p<\/code> tag when converting core paragraph block to Headline block<\/li>\n<li>Feature: Use arrow keys to increase or decrease values in unit control<\/li>\n<li>Fix: Button URL dropdown closing on input<\/li>\n<li>Fix: Undefined $fontFamily in old Headline version<\/li>\n<li>Fix: Missing block width alignment in block themes<\/li>\n<li>Tweak: Remove \"one-time\" block CSS and include it for specific blocks when needed<\/li>\n<li>Tweak: Added new <code>(min-width: 768px)<\/code> media query to filterable queries<\/li>\n<li>Tweak: Replace Twitter icon with X icon<\/li>\n<li>Tweak: Use core Block Name for block labelling<\/li>\n<\/ul>\n\n<h4>1.8.3<\/h4>\n\n<ul>\n<li>Security: Add user capability check to Query Loop post status<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Fix: Border colors not showing when old attributes are set.<\/li>\n<li>Tweak: Add support for the newly created core function \"wp_img_tag_add_loading_optimization_attrs\"<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Fix: Icon padding controls order<\/li>\n<li>Fix: Global styles overwriting local attributes<\/li>\n<li>Fix: Editor controls spacing using RTL languages<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Feature: Add flexbox alignment matrix component to Container toolbar<\/li>\n<li>Feature: Add new Borders panel with width\/style\/color options for all four sides<\/li>\n<li>Feature: Add new dimensions components in Spacing panel<\/li>\n<li>Feature: Mix and match padding\/margin units across sides and devices<\/li>\n<li>Feature: Add more available units to all options that accept them<\/li>\n<li>Feature: Allow text values (calc(), var(), etc...) in options that accept them<\/li>\n<li>Feature: New \"Add to Container\" icon added to the toolbar of all blocks<\/li>\n<li>Feature: Allow removal of Container block around innerBlocks<\/li>\n<li>Feature: Display text field to allow user to replace image URL<\/li>\n<li>Feature: Headline block show text in List View<\/li>\n<li>Feature: Button block show text in List View<\/li>\n<li>Feature: Image block show alt\/title in List View<\/li>\n<li>Feature: Add Block Label option to label Container, Query Loop, and Grid blocks in List View<\/li>\n<li>Feature: Only show one dimension field if synced<\/li>\n<li>Feature: Add option to disable Google fonts<\/li>\n<li>Feature: Allow all unit types in UnitControl<\/li>\n<li>Feature: Add help icon to unit list<\/li>\n<li>Fix: Attributes merging incorrect values when multiple blocks are selected<\/li>\n<li>Fix: Color and Background panels are visible\/accessible on responsive views<\/li>\n<li>Fix: Template lock system not applying to inner blocks<\/li>\n<li>Fix: Button with dynamic content not displaying the aria-label<\/li>\n<li>Fix: unique id not regenareted correctly on widgets editor<\/li>\n<li>Fix: React createRoot warning<\/li>\n<li>Fix: Double-click when selecting Grid template<\/li>\n<li>Fix: Query loop parameter delete button size<\/li>\n<li>Fix: Advanced select jumping when near the bottom of the page<\/li>\n<li>Fix: Triple captions using static image with dynamic link<\/li>\n<li>Fix: Flex icons based on direction in device previews<\/li>\n<li>Fix: Container appender icon spacing<\/li>\n<li>Fix: useDeviceType state was one state behind when triggered from core buttons<\/li>\n<li>Fix: Use unit in UnitControl if value starts with decimal<\/li>\n<li>Fix: Remove trailing spaces from UnitControl numeric value<\/li>\n<li>Tweak: Require at least PHP 7.2<\/li>\n<li>Tweak: Move block alignment to Layout panel<\/li>\n<li>Tweak: Remove help text from Grid vertical alignment<\/li>\n<li>Tweak: Remove the Button Container variation<\/li>\n<li>Tweak: Clean up UnitControl display across all browsers<\/li>\n<li>Tweak: Show all Google fonts in font family dropdown<\/li>\n<li>Tweak: Remove top\/bottom margin from Query Loop in the editor<\/li>\n<li>Tweak: Force lowercase units in UnitControl<\/li>\n<li>Tweak: Improve UnitControl unit visibility<\/li>\n<li>Tweak: Show units in 2 rows<\/li>\n<li>Tweak: Use same unit list for all UnitControl controls<\/li>\n<li>Dev: Rebuild how block migrations run<\/li>\n<li>Dev: Migrate spacing attributes to new spacing object attribute<\/li>\n<li>Dev: Migrate typography attributes to new typography object attribute<\/li>\n<li>Dev: Migrate icon padding and size attributes to new iconStyles object attribute<\/li>\n<\/ul>\n\n<p>Full changelog can be found <a href=\"https:\/\/generateblocks.com\/category\/changelog\/\">here<\/a>.<\/p>","raw_excerpt":"A small collection of lightweight WordPress blocks that can accomplish nearly anything.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/116101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=116101"}],"author":[{"embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/edge22"}],"wp:attachment":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=116101"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=116101"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=116101"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=116101"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=116101"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=116101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}