{"id":326719,"date":"2026-07-12T09:01:47","date_gmt":"2026-07-12T09:01:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wpbits-block-studio\/"},"modified":"2026-07-12T09:01:20","modified_gmt":"2026-07-12T09:01:20","slug":"wpbits-block-studio","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/wpbits-block-studio\/","author":17791203,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.1","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"WPBits Block Studio","header_author":"Wpbits","header_description":"Developer helper plugin to create Gutenberg blocks via React UI or JSON\/PHP schemas. Generate complete block files with live preview.","assets_banners_color":"81cedc","last_updated":"2026-07-12 09:01:20","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpbits.net\/block-studio-gutenberg-block-generator\/","header_author_uri":"https:\/\/wpbits.net","rating":0,"author_block_rating":0,"active_installs":0,"downloads":21,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"wpbits","date":"2026-07-12 09:01:20"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3604572,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3604572,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3604572,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3604572,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3604572,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3604572,"resolution":"1","location":"assets","locale":"","width":2972,"height":1972},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3604572,"resolution":"2","location":"assets","locale":"","width":2722,"height":1843},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3604572,"resolution":"3","location":"assets","locale":"","width":2786,"height":1461},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3604572,"resolution":"4","location":"assets","locale":"","width":2749,"height":2334},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3604572,"resolution":"5","location":"assets","locale":"","width":2850,"height":2197},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3604572,"resolution":"6","location":"assets","locale":"","width":2750,"height":1443},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3604572,"resolution":"7","location":"assets","locale":"","width":2972,"height":3030},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3604572,"resolution":"8","location":"assets","locale":"","width":2822,"height":1421}},"screenshots":{"1":"Dashboard \u2013 Overview of all created blocks with DataViews","2":"Block Form \u2013 Create and edit blocks with tabbed interface and validation","3":"Attribute Editor \u2013 Visual editor with drag-and-drop reordering and conditional visibility","4":"Settings Page \u2013 Configure defaults, role management, and sync options","5":"Icon Picker \u2013 Choose block icons from supported WordPress icon options","6":"Export Options \u2013 Export block configurations","7":"Sync Status \u2013 Track externally edited generated files and sync state across all blocks"}},"plugin_section":[],"plugin_tags":[163051,4121,4932,2209,148076],"plugin_category":[],"plugin_contributors":[271165,182036],"plugin_business_model":[],"class_list":["post-326719","plugin","type-plugin","status-publish","hentry","plugin_tags-block-builder","plugin_tags-blocks","plugin_tags-developer-tools","plugin_tags-generator","plugin_tags-gutenberg","plugin_contributors-kyguney","plugin_contributors-wpbits","plugin_committers-wpbits"],"banners":{"banner":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/banner-772x250.jpg?rev=3604572","banner_2x":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/banner-1544x500.jpg?rev=3604572","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/icon.svg?rev=3604572","icon":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/icon.svg?rev=3604572","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/screenshot-1.png?rev=3604572","caption":"Dashboard \u2013 Overview of all created blocks with DataViews"},{"src":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/screenshot-2.png?rev=3604572","caption":"Block Form \u2013 Create and edit blocks with tabbed interface and validation"},{"src":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/screenshot-3.png?rev=3604572","caption":"Attribute Editor \u2013 Visual editor with drag-and-drop reordering and conditional visibility"},{"src":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/screenshot-4.png?rev=3604572","caption":"Settings Page \u2013 Configure defaults, role management, and sync options"},{"src":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/screenshot-5.png?rev=3604572","caption":"Icon Picker \u2013 Choose block icons from supported WordPress icon options"},{"src":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/screenshot-6.png?rev=3604572","caption":"Export Options \u2013 Export block configurations"},{"src":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/screenshot-7.png?rev=3604572","caption":"Sync Status \u2013 Track externally edited generated files and sync state across all blocks"},{"src":"https:\/\/ps.w.org\/wpbits-block-studio\/assets\/screenshot-8.png?rev=3604572","caption":""}],"raw_content":"<!--section=description-->\n<p>WPBits Block Studio is a powerful developer tool that helps you create custom Gutenberg blocks without writing code from scratch. Perfect for WordPress developers, agencies, and power users who want to speed up their block development workflow.<\/p>\n\n<h4>Key Features<\/h4>\n\n<h3>Free Features<\/h3>\n\n<ul>\n<li><strong>Visual Block Builder<\/strong> \u2013 Configure block metadata and attributes in WordPress<\/li>\n<li><strong>Schema-Based Generation<\/strong> \u2013 JSON schema defines block structure<\/li>\n<li><strong>Static &amp; Dynamic Blocks<\/strong> \u2013 Build both static and dynamic Gutenberg blocks<\/li>\n<li><strong>Twig Template Engine<\/strong> \u2013 Familiar templating syntax with powerful features<\/li>\n<li><strong>Attribute Editor<\/strong> \u2013 Visual editing for block attributes<\/li>\n<li><strong>Conditional Visibility<\/strong> \u2013 Show\/hide blocks based on conditions<\/li>\n<li><strong>Template System<\/strong> \u2013 Reusable block templates<\/li>\n<li><strong>Block Supports Editor<\/strong> \u2013 Configure block support options<\/li>\n<li><strong>Location Rules<\/strong> \u2013 Control where blocks appear<\/li>\n<li><strong>Auto-Sync<\/strong> \u2013 Synchronize externally edited generated block files<\/li>\n<li><strong>Import\/Export<\/strong> \u2013 Import and export block configurations<\/li>\n<li><strong>Role-Based Access<\/strong> \u2013 Control access by user role<\/li>\n<li><strong>Internationalization<\/strong> \u2013 Full i18n support for translations<\/li>\n<\/ul>\n\n<h3>Pro Features<\/h3>\n\n<ul>\n<li><strong>Custom Render PHP<\/strong> \u2013 Use your own PHP render logic in the separate Pro version<\/li>\n<li><strong>Advanced content controls<\/strong> \u2013 Available in the separate Pro version<\/li>\n<li><strong>InnerBlocks Support<\/strong> \u2013 Configure nested block areas<\/li>\n<li><strong>Groups Tab<\/strong> \u2013 Organize attributes into collapsible sections<\/li>\n<li><strong>Custom Categories<\/strong> \u2013 Organize blocks in the inserter<\/li>\n<li><strong>Custom Output Directory<\/strong> \u2013 Set where block files are saved<\/li>\n<li><strong>Custom Icon Upload<\/strong> \u2013 Upload SVG, PNG, JPG, GIF icons<\/li>\n<li><strong>Export as Plugin<\/strong> \u2013 Package blocks as standalone WordPress plugins<\/li>\n<\/ul>\n\n<h4>Available Control Types<\/h4>\n\n<p><strong>Free Controls:<\/strong><\/p>\n\n<ul>\n<li>Text \u2013 Single-line text input<\/li>\n<li>Textarea \u2013 Multi-line text input with optional TinyMCE rich editor<\/li>\n<li>Rich Text \u2013 WordPress rich text editor<\/li>\n<li>Number \u2013 Numeric input with min\/max\/step<\/li>\n<li>Range \u2013 Slider control with min\/max\/step<\/li>\n<li>Checkbox \u2013 Boolean checkbox<\/li>\n<li>Toggle \u2013 On\/off toggle switch<\/li>\n<li>Select \u2013 Dropdown select<\/li>\n<li>Multi-Select \u2013 Multiple selection dropdown<\/li>\n<li>Combobox \u2013 Searchable dropdown with free-text entry<\/li>\n<li>Radio \u2013 Radio button group<\/li>\n<li>Color \u2013 Color picker with palette support<\/li>\n<li>Image \u2013 Media library image picker<\/li>\n<li>Date \u2013 Popover-based date picker with format options<\/li>\n<li>DateTime \u2013 Combined date and time picker<\/li>\n<li>Time \u2013 Time-only picker<\/li>\n<li>Link \u2013 URL picker with search and open-in-new-tab option<\/li>\n<li>Unit \u2013 Numeric input with unit suffix (px, em, rem, %, etc.)<\/li>\n<\/ul>\n\n<p><strong>Pro Controls:<\/strong><\/p>\n\n<ul>\n<li>Advanced content controls for complex content models (PRO)<\/li>\n<\/ul>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li>WordPress developers building custom blocks<\/li>\n<li>Agencies creating blocks for multiple clients<\/li>\n<li>Theme developers needing block patterns<\/li>\n<li>Plugin developers requiring custom blocks<\/li>\n<li>Anyone wanting to learn block development<\/li>\n<\/ul>\n\n<h4>Generated Block Structure<\/h4>\n\n<p>Each generated block includes:<\/p>\n\n<ul>\n<li><code>block.json<\/code> \u2013 Block metadata and configuration<\/li>\n<li><code>index.js<\/code> \u2013 Block registration and editor\/save components<\/li>\n<li><code>template.twig<\/code> \u2013 Generated Twig template used by the block runtime<\/li>\n<li><code>style.css<\/code> \u2013 Frontend styles<\/li>\n<li><code>editor.css<\/code> \u2013 Editor-only styles<\/li>\n<li><code>README.md<\/code> \u2013 Block documentation<\/li>\n<\/ul>\n\n<h3>Developer Notes<\/h3>\n\n<h4>REST API Endpoints<\/h4>\n\n<p>The plugin provides REST API endpoints for programmatic access:<\/p>\n\n<ul>\n<li><code>GET \/wp-json\/wpbs\/v1\/blocks<\/code> \u2013 List all blocks<\/li>\n<li><code>POST \/wp-json\/wpbs\/v1\/blocks<\/code> \u2013 Create a new block<\/li>\n<li><code>GET \/wp-json\/wpbs\/v1\/blocks\/{id}<\/code> \u2013 Get a single block<\/li>\n<li><code>PUT \/wp-json\/wpbs\/v1\/blocks\/{id}<\/code> \u2013 Update a block<\/li>\n<li><code>DELETE \/wp-json\/wpbs\/v1\/blocks\/{id}<\/code> \u2013 Delete a block<\/li>\n<li><code>POST \/wp-json\/wpbs\/v1\/blocks\/{id}\/generate<\/code> \u2013 Generate block files<\/li>\n<li><code>POST \/wp-json\/wpbs\/v1\/blocks\/{id}\/export<\/code> \u2013 Export block to ZIP<\/li>\n<li><code>GET \/wp-json\/wpbs\/v1\/settings<\/code> \u2013 Get plugin settings<\/li>\n<li><code>POST \/wp-json\/wpbs\/v1\/settings<\/code> \u2013 Update plugin settings<\/li>\n<\/ul>\n\n<h4>Filters &amp; Actions<\/h4>\n\n<p>Developers can extend the plugin using WordPress hooks:<\/p>\n\n<ul>\n<li><code>wpbs_block_generation_path<\/code> \u2013 Filter the output path for generated blocks<\/li>\n<li><code>wpbs_template_replacements<\/code> \u2013 Filter template placeholder replacements<\/li>\n<li><code>wpbs_after_block_generation<\/code> \u2013 Action fired after block generation<\/li>\n<\/ul>\n\n<h4>Source Code &amp; Build Tools<\/h4>\n\n<p>The human-readable JavaScript source files for the React admin interface are included in this plugin package under the <code>admin\/<\/code> directory.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin does not collect, store, or transmit any user data. All block schemas are stored locally in your WordPress database.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, feature requests, or bug reports, please visit the plugin support forum or GitHub repository.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/wpbits-block-studio<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Navigate to <strong>WPBits Block Studio<\/strong> in your WordPress admin menu.<\/li>\n<li>Start creating blocks!<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file.<\/li>\n<li>Go to WordPress admin \u2192 Plugins \u2192 Add New.<\/li>\n<li>Click \"Upload Plugin\" and select the ZIP file.<\/li>\n<li>Click \"Install Now\" and then \"Activate Plugin\".<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.5 or higher<\/li>\n<li>PHP 8.0 or higher (PHP 8.3 recommended)<\/li>\n<li>Node.js 20.x for development builds<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20coding%20knowledge%20to%20use%20this%20plugin%3F\"><h3>Do I need coding knowledge to use this plugin?<\/h3><\/dt>\n<dd><p>Basic understanding of WordPress blocks is helpful, but the visual interface makes it easy to create blocks without extensive coding knowledge. The plugin generates all the necessary code for you.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20generated%20blocks%20after%20creation%3F\"><h3>Can I edit the generated blocks after creation?<\/h3><\/dt>\n<dd><p>Yes. You can update block configuration in the plugin interface, regenerate files, or edit generated project files externally with your own editor, FTP, or local development workflow.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20static%20and%20dynamic%20blocks%3F\"><h3>What's the difference between static and dynamic blocks?<\/h3><\/dt>\n<dd><p>Static blocks save their output directly to the post content using JavaScript's save function. Dynamic blocks render on the server side using the generated Twig template, which is better for content that changes frequently.<\/p><\/dd>\n<dt id=\"can%20i%20use%20twig%20templates%3F\"><h3>Can I use Twig templates?<\/h3><\/dt>\n<dd><p>Yes. WPBits Block Studio generates <code>template.twig<\/code> files and renders them through the plugin runtime. Edit those generated files outside wp-admin using your normal development tools.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20generated%20blocks%20in%20my%20theme%3F\"><h3>Can I use the generated blocks in my theme?<\/h3><\/dt>\n<dd><p>Yes. The free version generates block files in the plugin-managed output directory. Pro can generate to a custom output directory.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20block%20themes%3F\"><h3>Does this work with block themes?<\/h3><\/dt>\n<dd><p>Yes! The plugin is fully compatible with both classic and block themes.<\/p><\/dd>\n<dt id=\"can%20i%20import%20existing%20blocks%3F\"><h3>Can I import existing blocks?<\/h3><\/dt>\n<dd><p>Yes, you can import compatible generated block files and regenerate them.<\/p><\/dd>\n<dt id=\"can%20i%20export%20multiple%20blocks%20at%20once%3F\"><h3>Can I export multiple blocks at once?<\/h3><\/dt>\n<dd><p>The free version supports block configuration export. The separate Pro version adds standalone plugin export.<\/p><\/dd>\n<dt id=\"how%20does%20auto-sync%20work%3F\"><h3>How does auto-sync work?<\/h3><\/dt>\n<dd><p>Auto-sync monitors generated block files edited outside wp-admin and compares them with the saved block definitions. It detects new or changed generated files so you can keep the file workflow and block configuration in sync.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<p>Initial release of WPBits Block Studio.<\/p>","raw_excerpt":"Developer helper plugin to create Gutenberg blocks from a visual interface and generated project files. Powered by WPBits.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=326719"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpbits"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326719"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326719"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326719"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326719"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326719"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}