{"id":336240,"date":"2026-08-11T15:24:48","date_gmt":"2026-08-11T15:24:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/block-binder\/"},"modified":"2026-08-11T15:24:35","modified_gmt":"2026-08-11T15:24:35","slug":"lax-block-binder","status":"publish","type":"plugin","link":"https:\/\/hsb.wordpress.org\/plugins\/lax-block-binder\/","author":9194098,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Lax Block Binder","header_author":"Lax Mariappan","header_description":"Visually bind post meta to core blocks using the Block Bindings API","assets_banners_color":"","last_updated":"2026-08-11 15:24:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/laxmariappan\/lax-block-binder","header_author_uri":"https:\/\/laxmariappan.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":40,"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":"lakshmananphp","date":"2026-08-11 15:24:35"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Block Binder sidebar panel in the block editor","2":"Selecting a block attribute to bind","3":"Choosing from available post meta keys","4":"Successfully bound binding indicator"}},"plugin_section":[],"plugin_tags":[246427,4121,2010,148076,4586],"plugin_category":[],"plugin_contributors":[79726],"plugin_business_model":[],"class_list":["post-336240","plugin","type-plugin","status-publish","hentry","plugin_tags-block-bindings","plugin_tags-blocks","plugin_tags-custom-fields","plugin_tags-gutenberg","plugin_tags-post-meta","plugin_contributors-lakshmananphp","plugin_committers-lakshmananphp"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/lax-block-binder.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Block Binder is a WordPress plugin that provides a user-friendly interface for binding post meta to supported core blocks using WordPress's Block Bindings API (available in WordPress 6.5+).<\/p>\n\n<p>Instead of manually editing block HTML or writing custom code, editors can now:\n- Select a supported block in the editor\n- Choose which block attribute to bind (text, URL, image, etc.)\n- Select a post meta key from the available options\n- Click \"Bind\" to connect the meta value to the block attribute<\/p>\n\n<p>The block will automatically display the post meta value on the frontend without hardcoding content.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Visual Block Binding Interface<\/strong> \u2014 Sidebar panel for intuitive meta-to-block connections<\/li>\n<li><strong>16+ Supported Blocks<\/strong> \u2014 Paragraph, Heading, Image, Button, List, Quote, Audio, Video, Columns, Cover, File, Gallery, Table, and more<\/li>\n<li><strong>Dynamic Meta Key Discovery<\/strong> \u2014 Automatically discovers available post meta keys from your site<\/li>\n<li><strong>REST API Integration<\/strong> \u2014 Asynchronous meta key loading for optimal performance<\/li>\n<li><strong>Block Bindings API Compliant<\/strong> \u2014 Uses WordPress's official Block Bindings API (WP 6.5+)<\/li>\n<li><strong>Secure<\/strong> \u2014 Respects WordPress security standards with capability checks and nonce verification<\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<ol>\n<li><strong>Edit a Post\/Page<\/strong> \u2014 Open the WordPress block editor<\/li>\n<li><strong>Select a Block<\/strong> \u2014 Click on a supported block (Paragraph, Heading, Image, Button, etc.)<\/li>\n<li><strong>Open Block Binder Panel<\/strong> \u2014 Find the \"Block Binder\" panel in the document settings sidebar<\/li>\n<li><strong>Choose Attribute<\/strong> \u2014 Select which block attribute to bind (e.g., \"content\" for Paragraph, \"url\" for Image)<\/li>\n<li><strong>Select Meta Key<\/strong> \u2014 Choose a post meta key from the dropdown (dynamically populated from your site)<\/li>\n<li><strong>Bind<\/strong> \u2014 Click the \"Bind\" button to connect the meta value to the block attribute<\/li>\n<li><strong>Unbind<\/strong> \u2014 Click \"Unbind\" to remove an existing binding<\/li>\n<\/ol>\n\n<p>On the frontend, the bound block attribute will automatically display the post meta value without requiring additional code.<\/p>\n\n<h3>Supported Blocks<\/h3>\n\n<ul>\n<li>core\/paragraph<\/li>\n<li>core\/heading (including h1-h6 variants)<\/li>\n<li>core\/image<\/li>\n<li>core\/button<\/li>\n<li>core\/list<\/li>\n<li>core\/quote<\/li>\n<li>core\/audio<\/li>\n<li>core\/video<\/li>\n<li>core\/columns<\/li>\n<li>core\/column<\/li>\n<li>core\/cover<\/li>\n<li>core\/file<\/li>\n<li>core\/gallery<\/li>\n<li>core\/table<\/li>\n<li>core\/preformatted<\/li>\n<li>core\/verse<\/li>\n<\/ul>\n\n<h3>Block Attributes<\/h3>\n\n<p>Different blocks support different attributes:<\/p>\n\n<ul>\n<li><strong>Paragraph, Heading<\/strong> \u2014 content<\/li>\n<li><strong>Image<\/strong> \u2014 url, alt, title, caption<\/li>\n<li><strong>Button<\/strong> \u2014 text, url, title<\/li>\n<li><strong>List<\/strong> \u2014 values<\/li>\n<li><strong>Quote<\/strong> \u2014 value, citation<\/li>\n<li><strong>Audio, Video<\/strong> \u2014 src, caption<\/li>\n<li><strong>Columns, Column<\/strong> \u2014 className<\/li>\n<li><strong>Cover<\/strong> \u2014 backgroundImageUrl, title, subtitle<\/li>\n<li><strong>File<\/strong> \u2014 href, fileName, textLinkTarget<\/li>\n<li><strong>Gallery, Table<\/strong> \u2014 caption<\/li>\n<li><strong>Preformatted, Verse<\/strong> \u2014 content<\/li>\n<\/ul>\n\n<h3>Technical Details<\/h3>\n\n<p><strong>Custom Binding Source:<\/strong> <code>lax-block-binder\/post-meta<\/code>\n- Registered via <code>register_block_bindings_source()<\/code>\n- Retrieves post meta values via <code>get_post_meta()<\/code><\/p>\n\n<p><strong>REST Endpoint:<\/strong> <code>GET \/wp-json\/lax-block-binder\/v1\/meta-keys<\/code>\n- Requires <code>edit_posts<\/code> capability\n- Returns array of available meta keys\n- Secured with WordPress nonce verification<\/p>\n\n<p><strong>JavaScript Framework:<\/strong> @wordpress\/scripts\n- Uses React hooks for state management\n- Built with @wordpress\/components for UI\n- Integrates with @wordpress\/block-editor for block manipulation<\/p>\n\n<h3>Support<\/h3>\n\n<p>For bug reports, feature requests, or questions, please visit:\nhttps:\/\/github.com\/laxmariappan\/lax-block-binder<\/p>\n\n<h3>License<\/h3>\n\n<p>Lax Block Binder is licensed under the GPL v2 or later.<\/p>\n\n<p>This program is free software; you can redistribute it and\/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.<\/p>\n\n<p>This program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.<\/p>\n\n<h3>Credits<\/h3>\n\n<p><strong>Author:<\/strong> Lax Mariappan\n<strong>Contributors:<\/strong> Oz (AI Assistant)<\/p>\n\n<p>Built with \u2764\ufe0f for the WordPress community.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Download the Block Binder plugin<\/li>\n<li>Upload it to the <code>\/wp-content\/plugins\/block-binder\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Edit any post\/page in the block editor<\/li>\n<li>Select a supported block and look for the \"Block Binder\" panel in the document settings (right sidebar)<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20wordpress%20version%20do%20i%20need%3F\"><h3>What WordPress version do I need?<\/h3><\/dt>\n<dd><p>Block Binder requires WordPress 6.5 or higher, as it depends on the Block Bindings API introduced in that version.<\/p><\/dd>\n<dt id=\"what%20php%20version%20is%20required%3F\"><h3>What PHP version is required?<\/h3><\/dt>\n<dd><p>PHP 7.4 or higher is required.<\/p><\/dd>\n<dt id=\"can%20i%20bind%20multiple%20attributes%20on%20the%20same%20block%3F\"><h3>Can I bind multiple attributes on the same block?<\/h3><\/dt>\n<dd><p>Yes! You can bind multiple attributes on a single block to different post meta keys.<\/p><\/dd>\n<dt id=\"will%20the%20bound%20values%20appear%20on%20the%20frontend%3F\"><h3>Will the bound values appear on the frontend?<\/h3><\/dt>\n<dd><p>Yes. WordPress's Block Bindings API automatically displays the bound post meta values on the frontend without requiring any additional code.<\/p><\/dd>\n<dt id=\"can%20i%20use%20custom%20post%20meta%20keys%3F\"><h3>Can I use custom post meta keys?<\/h3><\/dt>\n<dd><p>Yes. Block Binder discovers meta keys from:\n1. Meta keys registered via <code>register_meta()<\/code>\n2. Meta keys found in your site's post meta<\/p>\n\n<p>Any meta key in your database will appear in the dropdown.<\/p><\/dd>\n<dt id=\"what%20if%20i%20have%20a%20lot%20of%20post%20meta%3F\"><h3>What if I have a lot of post meta?<\/h3><\/dt>\n<dd><p>Block Binder queries the latest 50 posts to discover available meta keys, limiting the dropdown to relevant options for performance.<\/p><\/dd>\n<dt id=\"can%20i%20bind%20to%20private%2Funderscored%20meta%20keys%3F\"><h3>Can I bind to private\/underscored meta keys?<\/h3><\/dt>\n<dd><p>Block Binder primarily shows public meta keys (those not starting with <code>_<\/code>). Private meta keys can still be bound via the block's metadata editor if needed.<\/p><\/dd>\n<dt id=\"is%20this%20secure%3F\"><h3>Is this secure?<\/h3><\/dt>\n<dd><p>Yes. Block Binder respects WordPress security standards:\n- Only users with <code>edit_posts<\/code> capability can access the binding interface\n- REST API endpoints are secured with nonce verification\n- All inputs are sanitized and validated<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20custom%20blocks%3F\"><h3>Can I use this with custom blocks?<\/h3><\/dt>\n<dd><p>Currently, Block Binder supports core WordPress blocks. Custom block support may be added in future versions.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20custom%20post%20types%3F\"><h3>Does this work with custom post types?<\/h3><\/dt>\n<dd><p>Yes. Block Binder works with any post type that uses the block editor and has post meta.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>REST API for dynamic meta key loading<\/li>\n<li>Support for 16+ core blocks<\/li>\n<li>Visual binding interface<\/li>\n<li>Secure capability and nonce checks<\/li>\n<\/ul>","raw_excerpt":"Visually bind post meta to core blocks using the Block Bindings API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/336240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=336240"}],"author":[{"embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lakshmananphp"}],"wp:attachment":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=336240"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=336240"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=336240"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=336240"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=336240"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=336240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}