Custom Blocks Constructor – Lazy Blocks


Custom Blocks Plugin For WordPress

Developers magic wand for WordPress custom blocks. We created Lazy Blocks WordPress plugin, to help every developer get access to the powerful tools they need to quickly run websites based on WordPress block editor (called Gutenberg).

Official Site | Documentation | GitHub

Create custom blocks visually, add controls to your blocks using drag & drop, write blocks output using HTML or PHP code. You can create custom blocks as well as custom meta fields for specific post types. Furthermore, you are able to create post templates with predefined blocks for any post type.

🚀 Easy To Start

This everything you need to deploy your custom block in WordPress editor:

1. Configure Custom Block
Give a name to your custom block, set icon, category, etc.

2. Add Controls
Add control fields like simple text and complex image selectors.

3. Write Output Code
Output code for your custom block with HTML and PHP support.

🌟 Features

  • Custom blocks with output code
  • Custom blocks for posts meta fields
  • Large set of predefined controls
  • Show controls in block content / inspector
  • Multiple output methods allowed
    • Custom PHP
    • Custom HTML + Handlebars
    • Template files in theme folder
  • Export / Import blocks

🔥 Controls

To manage custom blocks attributes you need to use Controls. Lazy Blocks have a large set of controls predefined for you:

  • Basic
    • Text
    • テキストエリア
    • 番号
    • 範囲
    • URL
    • メール
    • パスワード
  • Content
    • Image
    • ギャラリー
    • File
    • Rich Text
    • Classic Editor
    • コードエディター
    • 内部ブロック
  • Choice
    • Select
    • Radio
    • チェックボックス
    • 切り替え
  • Advanced
    • Color Picker
    • Date Time Picker
  • Layout
    • Repeater
  • Custom Controls read our extended documentation

🛠 Built For Developers

Lazy Blocks built by developers, for developers and gives you unlimited freedom to create custom blocks. Furthermore, there are PHP filters and actions to customize every part of your custom blocks from the backend. Possibility to use PHP and theme templates system.

Every UI part should be intuitive for simple custom blocks, but if you want to create something more complex, you may be required to read our extended documentation.


  • Blocks Constructor
  • Custom Blocks with Example Controls
  • Posts Templates



  • Free Content



Automatic installation is the easiest option as WordPress handles the file transfers itself and you don’t need to leave your web browser. To do an automatic install of Lazy Blocks, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New.

In the search field type “Lazy Blocks” and click Search Plugins. Once you’ve found our plugin you can view details about it such as the point release, rating and description. Most importantly of course, you can install it by simply clicking “Install Now”.


The manual installation method involves downloading our Lazy Blocks plugin and uploading it to your webserver via your favourite FTP application. The WordPress codex contains instructions on how to do this here.


This is a beautifully thought through plugin. It does exactly what it says, with clear and easy to read documentation. Thank you so much, this has been a real time-saver!
I simply love this plugin. On every WordPress site I create, this is the first plugin I install. It makes my work so much easier.
I never write reviews or endorse plugins. But, this is the exception after 12 years developing off and on with WP. This plugin solves too big of a problem with WP not to share a perspective. If your a front-end developer looking for a completely "practical" integration solution for your custom templates/themes, this is a MUST HAVE!!! Especially if your looking for 100% bootstrap or RWD control. Ever since the Gutenberg block editor was issued in WP, integrating custom templates has become increasingly convoluted. Yes, you can plugin a classic editor switch and ignore it (for now). Yes, you can stack up Advanced Custom Fields (ACF), Content Aware Sidebars (CA), or other related solutions to force meta conditions. And yes, you can bloat the hell out of your (or your clients) site with builders like Elementor or Genisis page builders and marvel at the 10,000 additional lines of nested containers injected into your theme -- as your site performance plummets and CSS inheritance issues plague your theme. OR... you can just USE Lazy Block and feel a sense of pride in a clean integration that does what it promises and what you need it to do!!! If this plugin was $500 for a developer license I'd gladly pay it for the headaches it solves. You can simply create any page-specific template file in your custom theme, and reference as little as 3 core dependencies like: <?php /* Template Name: Hero Template */ ?> <?php get_header(); ?> <?php the_content(); ?> <?php get_footer(); ?> You can then create a new block in Lazy Blocks (like "Hero" for example) and drop in your entire page body structure. From there, it's as simple as going through and adding controls to map any and every section of content, CTA or image you want to manage editing control over. To manage versatility of sidebars, simply drop in a "inner block" in your sidebar wrapper and you can stack default -- or your custom widgets (which can also be tamed in Lazy blocks) -- into your markup. With this plugin, I was able to save 20+ hours on theme integration, remove 5 add-ons (that were trying to help maximize control of edit-ability) and improve site performance and stability! One other reviewer of this plugin stated, "It should be part of WP core" and he/she isn't wrong! Documentation is simple and succinct. The UI is minimalist and elegant and the integration results are exactly what you hope for!!


Custom Blocks Constructor – Lazy Blocks はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。


“Custom Blocks Constructor – Lazy Blocks” は5ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Custom Blocks Constructor – Lazy Blocks” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。



  • added compatibility with WordPress 5.7
  • added possibility to display default meta value (without hard code, using native WordPress 5.5+ API)
  • improved date time picker styles
  • improved constructor controls rendering code
  • fixed double classes rendering in editor, when Single Output code enabled
  • minor changes


  • added possibility to duplicate blocks
  • added top toolbar to admin pages
  • improved Date Time picker
    • always display TimePicker component (to let users manually set day, month and year)
    • display only necessary parts of TimePicker component
    • better format on button label
  • changed constructor Type selector to modal
  • fixed Classic control initialize problem in WordPress 5.6 update
  • fixed constructor disabled Update button
  • fixed constructor controls label margin
  • fixed compatibility with Amazon S3 Offload Media plugin (changed image and gallery controls image URL retrieve method)
  • minor changes




  • added support for WordPress 5.5
  • added support for theme template files
  • added Output Format option for Select and Radio controls
    • You can output Label
    • You can output array with Value and Label
  • added RTL support
  • added code to force enable Gutenberg editor on “lazyblocks” post type pages
  • added code for custom blocks constructor pages, that force enables it and inserts
  • added support for “Frame” and “Custom CSS” Ghost Kit extensions
  • added “PRO Survey” link in the admin menu to get help from users
  • changed default category to “text”
    • Don’t forget to update categories for all your custom blocks
    • Since WordPress 5.5 added new categories: Text, Media, Design
    • Removed categories: Common, Formatting, Layout
  • fixed errors in editor preview, when using get_lzb_meta function (now it is working as on frontend)
  • fixed slashes save in lazyblocks meta data (fixes custom code slashes)
  • fixed custom block code editor content when switching between Frontend and Editor tabs
  • fixed JS error when opened “lazyblocks” list admin page
  • minor improvements


  • added JS files translation


  • added reset button to URL control


  • added help link to “Save in Meta” control option
  • added higher priority for registering post templates (possible fix for custom post types)
  • fixed custom fields support conflict with constructor interface


  • fixed JS build error


  • added support for required fields inside repeater
  • prevent possible bugs with adding custom blocks using PHP (register custom blocks inside init hook with priority = 20)
  • fixed repeater and Classic Control usage when all rows opened
  • fixed repeater control undefined value error
  • fixed custom categories registration conflict with 3rd-party plugins
  • fixed update control array data in Constructor (can’t clear)


  • added WordPress 5.4 compatibility
  • added 12 hours format for Time Picker automatically based on WordPress settings
  • removed the possibility to disable both date and time in Date Time Picker control
  • fixed inability to remove all controls from custom block


  • fixed possible PHP 7.4 error because of admin Tools export checks


  • fixed error when no icon specified to custom block


  • fixed Date Time Picker control displaying selected value
  • fixed Classic Editor control rendering bug when used in multiple custom blocks
  • fixed Allow Null value save in Select control
  • hide “duplicate” button from Inner Blocks control in constructor


  • fixed checkbox and toggle controls meta filter php error


  • added custom controls API
  • added Export / Import JSON for custom blocks and templates
  • added error messages to File, Image and Gallery controls
  • added Width option to controls
  • added alongside option to Checkbox and Toggle controls
  • added Example Block after plugin activation
  • added Classic Editor control
  • added possibility to include plugin code in themes and 3rd-party plugins
  • changed block icons to Material SVG
  • fixed change value in Rich Text and Code Editor
  • fixed errors when no specified block icon or title
  • fixed Rich Text control styles
  • fixed PHP errors when control type is not defined
  • fixed height of Select component
  • fixed file control Upload button error, when no allowed mime types selected
  • fixed possible PHP warnings when control meta used, but array item doesn’t exist
  • fixed URL control paddings
  • fixed constructor admin list mobile devices styles
  • fixed required notice position
  • removed Multiple option from Radio control
  • constructor
    • improved UI
    • added Duplicate and Delete buttons on controls
    • added icons to Controls
    • added control placeholder if label is not specified
    • added control no label if label is not specified
    • improved placement settings (changed select to buttons)
    • improved date time settings (changed select to buttons)
    • fixed select component style
    • fixed select component z-index
    • fixed document tabs margin
    • fixed overflow and dropdowns sidebar


  • fixes for WordPress 5.3
  • fixed placement control when enabled option hide_if_not_selected and set placement to inspector



  • added experimental Required option for top-level controls
  • added possibility to choose which custom blocks and template export on Tools page
  • changed Templates page to use React
  • changed Tools page to use React
  • fixed PHP error when className is not available in the custom block
  • fixed PHP warning when used multiple select options
  • minor changes


  • added File control
  • changed anchor attribute settings (fixed anchor save in the latest Gutenberg)
  • fixed select control value save (if no Multiple option set)
  • fixed InnerBlocks with option “Hide if block is not selected”
  • fixed boolean meta data of constructor save (convert to string)


  • fixed order of controls was not saved
  • fixed php error when no custom blocks available
  • fixed selecting inner repeater controls
  • fixed control styles disappear while resorting
  • prevent control selection on drag handler click
  • prevent control selection on repeater toggle click


  • Improved Constructor UI
    • Custom block setting moved to the right side (Inspector)
    • Control setting opens in Inspector when you select it
  • added alpha channel option to Color Picker control
  • added ‘Save in Meta’ support for Repeater field
  • added possibility to hide custom block previews in editor
  • added possibility to use single code output for both Frontend and Editor
  • added Select Multiple option
  • fixed custom block preview loading when returned empty string
  • fixed Keywords, Align and Condition custom block settings save when empty


  • added block slug validation in constructor
  • added slug creation if don’t exist after block title added
  • fixed controls saving in new custom blocks
  • fixed icon picker button styles in constructor


  • changed Block Constructor page to Gutenberg
  • added option to hide controls if custom block is not selected
  • added Radio control
  • fixed duplicating of categories selector in custom blocks constructor
  • fixed custom block ID duplication
  • fixed custom block preview loading error
  • fixed custom block names some characters
  • fixed custom post types publishing
  • fixed error if custom post type removed, but the template for this post is still available


  • fixed controls save when updating Lazy Blocks post in WordPress 5.1


  • added lzb/handlebars/object action inside init
  • trim class attribute value on frontend output
  • fixed loading Templates admin page and select initialization when more then 1 template added
  • fixed Range control with Save in Meta option
  • fixed JS error on all admin pages
  • fixed Handlebars PHP 7.3 error


  • added action to add Handlebars custom helpers (info in documentation)
  • added filter to disable frontend block wrapper of the custom block (info in documentation)
  • improved columns in admin list of custom blocks
  • extended list of symbols that need to be removed from the block slug
  • fixed PHP output for frontend if HTML output is empty
  • fixed losing Frontend & Editor output data when added output PHP filters


  • added support for custom blocks PHP preview rendering in Editor
  • added toggle button in Repeater control to toggle all rows
  • added custom block slug validation and automatic creation in constructor
  • added descriptions to additional block fields in constructor
  • added new attribute blockUniqueClass that will adds automatically on each custom block
  • added title on Image and Gallery attributes object
  • changed Editor rendering to AJAX also for Handlebars templates
  • changed output for custom blocks – always added wrapper with block class


  • added unique blockUniqueClass attribute to each custom block attributes and in editor wrapper


  • added unique blockId attribute to each custom block
  • simplified enqueue in admin templates page
  • fixed do_shortcode wrong attributes output (reserved data and hash attributes)
  • fixed Range control saving value


  • added filter for output frontend PHP of custom blocks (read in documentation)
  • added Allow Null option to Select control
  • added Help option in controls
  • added Placeholder option in controls
  • added all existing categories in custom block categories selector
  • fixed gallery control editable images
  • fixed dropzone position in image and gallery controls
  • fixed custom category title changing to slug
  • fixed automatic fill of control name in constructor
  • fixed date control error in WP 5.0
  • minor changes


  • fixed templates loading in Gutenberg 4.5
  • fixed do_shortcode work with Image control value


  • fixed controls errors in Gutenberg 4.2.0 (Gallery, Image, Code Editor)


  • added Inner Blocks control
  • added support for custom frontend render function (use PHP instead of Handlebars)
  • added possibility to resort Repeater rows
  • changed Repeater control styles
  • disabled autofocus in URL control
  • fixed URL input width
  • fixed Number control value save


  • added RichText control


  • added possibility to use all registered blocks in posts templates
  • added selector with search and block icons to easily find and add blocks to templates
  • added Free Content block to use in templates when template locked
  • added + button inside Repeater block
  • added Range control
  • added Color Picker control
  • added Date Time Picker control
  • added Documentation link in admin menu
  • improved URL control to search for available posts in blog


  • fixed catchable fatal error when use do_shortcode Handlebars helper




  • Initial Release