{"id":5543,"date":"2026-02-12T20:44:44","date_gmt":"2026-02-13T01:44:44","guid":{"rendered":"https:\/\/chubes.net\/?documentation=blocks-api-hooks"},"modified":"2026-03-13T03:28:01","modified_gmt":"2026-03-13T07:28:01","slug":"blocks-api-hooks","status":"publish","type":"documentation","link":"https:\/\/chubes.net\/docs\/wordpress-core\/blocks\/blocks-api-hooks\/","title":{"rendered":"Blocks API Hooks"},"content":{"rendered":"<p>Actions and filters for the WordPress Blocks API.<\/p><h2 class=\"wp-block-heading\">Block Registration Filters<\/h2><h3 class=\"wp-block-heading\">register_block_type_args<\/h3><p>Filters the arguments for registering a block type.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;register_block_type_args&#039;, array $args, string $block_type )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$args<\/code> <em>(array)<\/em> &#8211; Block type arguments<\/li><li><code>$block_type<\/code> <em>(string)<\/em> &#8211; Block type name including namespace<\/li><\/ul><p><strong>Since:<\/strong> 5.5.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;register_block_type_args&#039;, function( $args, $block_type ) {\n    \/\/ Add custom support to all blocks\n    if ( ! isset( $args[&#039;supports&#039;] ) ) {\n        $args[&#039;supports&#039;] = array();\n    }\n    $args[&#039;supports&#039;][&#039;customFeature&#039;] = true;\n    \n    return $args;\n}, 10, 2 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">block_type_metadata<\/h3><p>Filters metadata provided for registering a block type from <code>block.json<\/code>.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;block_type_metadata&#039;, array $metadata )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$metadata<\/code> <em>(array)<\/em> &#8211; Metadata from <code>block.json<\/code><\/li><\/ul><p><strong>Since:<\/strong> 5.7.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;block_type_metadata&#039;, function( $metadata ) {\n    \/\/ Modify metadata before registration\n    if ( &#039;my-plugin\/block&#039; === $metadata[&#039;name&#039;] ) {\n        $metadata[&#039;supports&#039;][&#039;align&#039;] = array( &#039;wide&#039;, &#039;full&#039; );\n    }\n    return $metadata;\n} );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">block_type_metadata_settings<\/h3><p>Filters settings determined from block type metadata.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;block_type_metadata_settings&#039;, array $settings, array $metadata )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$settings<\/code> <em>(array)<\/em> &#8211; Determined settings<\/li><li><code>$metadata<\/code> <em>(array)<\/em> &#8211; Original metadata<\/li><\/ul><p><strong>Since:<\/strong> 5.7.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;block_type_metadata_settings&#039;, function( $settings, $metadata ) {\n    \/\/ Add render callback based on metadata\n    if ( ! empty( $metadata[&#039;render&#039;] ) ) {\n        $settings[&#039;render_callback&#039;] = &#039;my_custom_render&#039;;\n    }\n    return $settings;\n}, 10, 2 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">get_block_type_variations<\/h3><p>Filters registered variations for a block type.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;get_block_type_variations&#039;, array $variations, WP_Block_Type $block_type )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$variations<\/code> <em>(array)<\/em> &#8211; Registered variations<\/li><li><code>$block_type<\/code> <em>(WP_Block_Type)<\/em> &#8211; Block type object<\/li><\/ul><p><strong>Since:<\/strong> 6.5.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">get_block_type_uses_context<\/h3><p>Filters registered uses context for a block type.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;get_block_type_uses_context&#039;, string[] $uses_context, WP_Block_Type $block_type )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$uses_context<\/code> <em>(string[])<\/em> &#8211; Context keys the block uses<\/li><li><code>$block_type<\/code> <em>(WP_Block_Type)<\/em> &#8211; Block type object<\/li><\/ul><p><strong>Since:<\/strong> 6.5.0<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Block Parsing Filters<\/h2><h3 class=\"wp-block-heading\">block_parser_class<\/h3><p>Filters the block parser class.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;block_parser_class&#039;, string $parser_class )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$parser_class<\/code> <em>(string)<\/em> &#8211; Parser class name. Default <code>'WP_Block_Parser'<\/code><\/li><\/ul><p><strong>Since:<\/strong> 5.0.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;block_parser_class&#039;, function() {\n    return &#039;My_Custom_Block_Parser&#039;;\n} );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Block Rendering Filters<\/h2><h3 class=\"wp-block-heading\">pre_render_block<\/h3><p>Allows short-circuiting block rendering.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;pre_render_block&#039;, string|null $pre_render, array $parsed_block, WP_Block|null $parent_block )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$pre_render<\/code> <em>(string|null)<\/em> &#8211; Pre-rendered content. Return non-null to skip rendering<\/li><li><code>$parsed_block<\/code> <em>(array)<\/em> &#8211; Parsed block array<\/li><li><code>$parent_block<\/code> <em>(WP_Block|null)<\/em> &#8211; Parent block if nested<\/li><\/ul><p><strong>Since:<\/strong> 5.1.0<br \/>\n<strong>Since:<\/strong> 5.9.0 &#8211; Added <code>$parent_block<\/code> parameter<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;pre_render_block&#039;, function( $pre_render, $block, $parent ) {\n    \/\/ Replace specific block with custom content\n    if ( &#039;my-plugin\/premium-content&#039; === $block[&#039;blockName&#039;] ) {\n        if ( ! current_user_can( &#039;access_premium&#039; ) ) {\n            return &#039;&lt;p&gt;Premium content - please subscribe&lt;\/p&gt;&#039;;\n        }\n    }\n    return $pre_render;\n}, 10, 3 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">render_block_data<\/h3><p>Filters the block before rendering.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;render_block_data&#039;, array $parsed_block, array $source_block, WP_Block|null $parent_block )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$parsed_block<\/code> <em>(array)<\/em> &#8211; Block being rendered (modifiable)<\/li><li><code>$source_block<\/code> <em>(array)<\/em> &#8211; Unmodified copy of block<\/li><li><code>$parent_block<\/code> <em>(WP_Block|null)<\/em> &#8211; Parent block if nested<\/li><\/ul><p><strong>Since:<\/strong> 5.1.0<br \/>\n<strong>Since:<\/strong> 5.9.0 &#8211; Added <code>$parent_block<\/code> parameter<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;render_block_data&#039;, function( $block, $source, $parent ) {\n    \/\/ Modify block attributes before render\n    if ( &#039;core\/paragraph&#039; === $block[&#039;blockName&#039;] ) {\n        $block[&#039;attrs&#039;][&#039;className&#039;] = ( $block[&#039;attrs&#039;][&#039;className&#039;] ?? &#039;&#039; ) . &#039; custom-class&#039;;\n    }\n    return $block;\n}, 10, 3 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">render_block_context<\/h3><p>Filters the default context provided to a block.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;render_block_context&#039;, array $context, array $parsed_block, WP_Block|null $parent_block )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$context<\/code> <em>(array)<\/em> &#8211; Default context<\/li><li><code>$parsed_block<\/code> <em>(array)<\/em> &#8211; Block being rendered<\/li><li><code>$parent_block<\/code> <em>(WP_Block|null)<\/em> &#8211; Parent block if nested<\/li><\/ul><p><strong>Since:<\/strong> 5.5.0<br \/>\n<strong>Since:<\/strong> 5.9.0 &#8211; Added <code>$parent_block<\/code> parameter<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;render_block_context&#039;, function( $context, $block, $parent ) {\n    \/\/ Add custom context for specific blocks\n    if ( &#039;my-plugin\/product&#039; === $block[&#039;blockName&#039;] ) {\n        $context[&#039;productId&#039;] = $block[&#039;attrs&#039;][&#039;productId&#039;] ?? null;\n    }\n    return $context;\n}, 10, 3 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">render_block<\/h3><p>Filters the content of a single block.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;render_block&#039;, string $block_content, array $block, WP_Block $instance )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$block_content<\/code> <em>(string)<\/em> &#8211; Block content HTML<\/li><li><code>$block<\/code> <em>(array)<\/em> &#8211; Full block including name and attributes<\/li><li><code>$instance<\/code> <em>(WP_Block)<\/em> &#8211; Block instance<\/li><\/ul><p><strong>Since:<\/strong> 5.0.0<br \/>\n<strong>Since:<\/strong> 5.9.0 &#8211; Added <code>$instance<\/code> parameter<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;render_block&#039;, function( $content, $block, $instance ) {\n    \/\/ Wrap all paragraphs in a container\n    if ( &#039;core\/paragraph&#039; === $block[&#039;blockName&#039;] ) {\n        $content = &#039;&lt;div class=&quot;paragraph-wrapper&quot;&gt;&#039; . $content . &#039;&lt;\/div&gt;&#039;;\n    }\n    return $content;\n}, 10, 3 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">render_block_{$name}<\/h3><p>Filters content of a specific block type.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &quot;render_block_{$name}&quot;, string $block_content, array $block, WP_Block $instance )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong> Same as <code>render_block<\/code><\/p><p><strong>Since:<\/strong> 5.7.0<br \/>\n<strong>Since:<\/strong> 5.9.0 &#8211; Added <code>$instance<\/code> parameter<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;render_block_core\/image&#039;, function( $content, $block, $instance ) {\n    \/\/ Add lazy loading to all images\n    return str_replace( &#039;&lt;img &#039;, &#039;&lt;img loading=&quot;lazy&quot; &#039;, $content );\n}, 10, 3 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Block Hooks Filters<\/h2><h3 class=\"wp-block-heading\">hooked_block_types<\/h3><p>Filters hooked block types for an anchor block.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;hooked_block_types&#039;, string[] $hooked_block_types, string $relative_position, string $anchor_block_type, WP_Block_Template|WP_Post|array $context )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$hooked_block_types<\/code> <em>(string[])<\/em> &#8211; List of hooked block types<\/li><li><code>$relative_position<\/code> <em>(string)<\/em> &#8211; Position: <code>before<\/code>, <code>after<\/code>, <code>first_child<\/code>, <code>last_child<\/code><\/li><li><code>$anchor_block_type<\/code> <em>(string)<\/em> &#8211; Anchor block type name<\/li><li><code>$context<\/code> &#8211; Template, post, or pattern context<\/li><\/ul><p><strong>Since:<\/strong> 6.4.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;hooked_block_types&#039;, function( $hooked, $position, $anchor, $context ) {\n    \/\/ Add newsletter block after every post content\n    if ( &#039;core\/post-content&#039; === $anchor &amp;&amp; &#039;after&#039; === $position ) {\n        $hooked[] = &#039;my-plugin\/newsletter-signup&#039;;\n    }\n    return $hooked;\n}, 10, 4 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">hooked_block<\/h3><p>Filters the parsed block array for a hooked block.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;hooked_block&#039;, array|null $parsed_hooked_block, string $hooked_block_type, string $relative_position, array $parsed_anchor_block, WP_Block_Template|WP_Post|array $context )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$parsed_hooked_block<\/code> <em>(array|null)<\/em> &#8211; Parsed block array, or null to suppress<\/li><li><code>$hooked_block_type<\/code> <em>(string)<\/em> &#8211; Hooked block type name<\/li><li><code>$relative_position<\/code> <em>(string)<\/em> &#8211; Position<\/li><li><code>$parsed_anchor_block<\/code> <em>(array)<\/em> &#8211; Anchor block<\/li><li><code>$context<\/code> &#8211; Template\/post\/pattern context<\/li><\/ul><p><strong>Since:<\/strong> 6.5.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">hooked_block_{$hooked_block_type}<\/h3><p>Filters a specific hooked block type.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &quot;hooked_block_{$hooked_block_type}&quot;, array|null $parsed_hooked_block, string $hooked_block_type, string $relative_position, array $parsed_anchor_block, WP_Block_Template|WP_Post|array $context )<\/code><\/pre><\/div><p><strong>Since:<\/strong> 6.5.0<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Block Editor Filters<\/h2><h3 class=\"wp-block-heading\">block_categories_all<\/h3><p>Filters default array of block categories.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;block_categories_all&#039;, array[] $block_categories, WP_Block_Editor_Context $block_editor_context )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$block_categories<\/code> <em>(array[])<\/em> &#8211; Array of categories<\/li><li><code>$block_editor_context<\/code> <em>(WP_Block_Editor_Context)<\/em> &#8211; Editor context<\/li><\/ul><p><strong>Since:<\/strong> 5.8.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;block_categories_all&#039;, function( $categories, $context ) {\n    return array_merge( $categories, array(\n        array(\n            &#039;slug&#039;  =&gt; &#039;my-plugin&#039;,\n            &#039;title&#039; =&gt; __( &#039;My Plugin&#039;, &#039;my-plugin&#039; ),\n            &#039;icon&#039;  =&gt; &#039;star-filled&#039;,\n        ),\n    ) );\n}, 10, 2 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">allowed_block_types_all<\/h3><p>Filters allowed block types for all editor types.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;allowed_block_types_all&#039;, bool|string[] $allowed_block_types, WP_Block_Editor_Context $block_editor_context )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$allowed_block_types<\/code> <em>(bool|string[])<\/em> &#8211; Array of slugs, or boolean to enable\/disable all<\/li><li><code>$block_editor_context<\/code> <em>(WP_Block_Editor_Context)<\/em> &#8211; Editor context<\/li><\/ul><p><strong>Since:<\/strong> 5.8.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;allowed_block_types_all&#039;, function( $allowed, $context ) {\n    \/\/ Limit blocks for specific post type\n    if ( isset( $context-&gt;post ) &amp;&amp; &#039;landing_page&#039; === $context-&gt;post-&gt;post_type ) {\n        return array(\n            &#039;core\/paragraph&#039;,\n            &#039;core\/heading&#039;,\n            &#039;core\/image&#039;,\n            &#039;core\/button&#039;,\n        );\n    }\n    return $allowed;\n}, 10, 2 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">block_editor_settings_all<\/h3><p>Filters block editor settings.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;block_editor_settings_all&#039;, array $editor_settings, WP_Block_Editor_Context $block_editor_context )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$editor_settings<\/code> <em>(array)<\/em> &#8211; Editor settings<\/li><li><code>$block_editor_context<\/code> <em>(WP_Block_Editor_Context)<\/em> &#8211; Editor context<\/li><\/ul><p><strong>Since:<\/strong> 5.8.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;block_editor_settings_all&#039;, function( $settings, $context ) {\n    \/\/ Disable code editing\n    $settings[&#039;codeEditingEnabled&#039;] = false;\n    \n    \/\/ Add custom settings\n    $settings[&#039;myPluginSettings&#039;] = array(\n        &#039;apiUrl&#039; =&gt; rest_url( &#039;my-plugin\/v1\/&#039; ),\n    );\n    \n    return $settings;\n}, 10, 2 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">block_editor_rest_api_preload_paths<\/h3><p>Filters REST API paths to preload for the editor.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;block_editor_rest_api_preload_paths&#039;, (string|string[])[] $preload_paths, WP_Block_Editor_Context $block_editor_context )<\/code><\/pre><\/div><p><strong>Since:<\/strong> 5.8.0<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Content Processing Filters<\/h2><h3 class=\"wp-block-heading\">excerpt_allowed_blocks<\/h3><p>Filters blocks that can contribute to excerpt.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;excerpt_allowed_blocks&#039;, string[] $allowed_blocks )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$allowed_blocks<\/code> <em>(string[])<\/em> &#8211; List of allowed block names<\/li><\/ul><p><strong>Since:<\/strong> 5.0.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">excerpt_allowed_wrapper_blocks<\/h3><p>Filters wrapper blocks allowed in excerpts.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;excerpt_allowed_wrapper_blocks&#039;, string[] $allowed_wrapper_blocks )<\/code><\/pre><\/div><p><strong>Since:<\/strong> 5.8.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">enqueue_empty_block_content_assets<\/h3><p>Filters whether to enqueue assets for empty blocks.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;enqueue_empty_block_content_assets&#039;, bool $enqueue, string $block_name )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$enqueue<\/code> <em>(bool)<\/em> &#8211; Whether to enqueue<\/li><li><code>$block_name<\/code> <em>(string)<\/em> &#8211; Block name<\/li><\/ul><p><strong>Since:<\/strong> 6.9.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">interactivity_process_directives<\/h3><p>Filters whether Interactivity API processes directives.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;interactivity_process_directives&#039;, bool $enabled )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$enabled<\/code> <em>(bool)<\/em> &#8211; Whether processing is enabled<\/li><\/ul><p><strong>Since:<\/strong> 6.6.0<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Query Block Filters<\/h2><h3 class=\"wp-block-heading\">query_loop_block_query_vars<\/h3><p>Filters WP_Query arguments for Query Loop Block.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">apply_filters( &#039;query_loop_block_query_vars&#039;, array $query, WP_Block $block, int $page )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$query<\/code> <em>(array)<\/em> &#8211; WP_Query arguments<\/li><li><code>$block<\/code> <em>(WP_Block)<\/em> &#8211; Block instance<\/li><li><code>$page<\/code> <em>(int)<\/em> &#8211; Current page number<\/li><\/ul><p><strong>Since:<\/strong> 6.1.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_filter( &#039;query_loop_block_query_vars&#039;, function( $query, $block, $page ) {\n    \/\/ Only show posts from last 30 days\n    $query[&#039;date_query&#039;] = array(\n        array(\n            &#039;after&#039; =&gt; &#039;30 days ago&#039;,\n        ),\n    );\n    return $query;\n}, 10, 3 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Deprecated Hooks<\/h2><h3 class=\"wp-block-heading\">block_categories (deprecated 5.8.0)<\/h3><p>Use <code>block_categories_all<\/code> instead.<\/p><h3 class=\"wp-block-heading\">allowed_block_types (deprecated 5.8.0)<\/h3><p>Use <code>allowed_block_types_all<\/code> instead.<\/p><h3 class=\"wp-block-heading\">block_editor_settings (deprecated 5.8.0)<\/h3><p>Use <code>block_editor_settings_all<\/code> instead.<\/p><h3 class=\"wp-block-heading\">block_editor_preload_paths (deprecated 5.8.0)<\/h3><p>Use <code>block_editor_rest_api_preload_paths<\/code> instead.<\/p>","protected":false},"excerpt":{"rendered":"<p>Actions and filters for the WordPress Blocks API. Block Registration Filters register_block_type_args Filters the arguments for registering a block type. apply_filters( &#8216;register_block_type_args&#8217;, array $args, string $block_type ) Parameters: $args (array)&#8230;<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"footnotes":""},"tags":[],"project":[603],"project_type":[749],"class_list":["post-5543","documentation","type-documentation","status-publish","hentry","project-blocks","project_type-wordpress-reference"],"project_info":{"id":589,"name":"WordPress Core","slug":"wordpress-core"},"project_type_info":{"id":749,"name":"WordPress Reference","slug":"wordpress-reference"},"_links":{"self":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation"}],"about":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/types\/documentation"}],"version-history":[{"count":3,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5543\/revisions"}],"predecessor-version":[{"id":8974,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5543\/revisions\/8974"}],"wp:attachment":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/media?parent=5543"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/tags?post=5543"},{"taxonomy":"project","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project?post=5543"},{"taxonomy":"project_type","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project_type?post=5543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}