Hooks
Filters and actions available for customizing pages, patterns, and the HTML parser.
Parser
blockstudio/parser/renderers
Filter the block renderer registry. Add custom renderers or override how blocks are parsed from HTML. See Custom Block Renderers for examples.
add_filter( 'blockstudio/parser/renderers', function( $renderers, $parser ) {
$renderers['acf/hero'] = function( $element, $attrs, $parser ) {
$inner_blocks = $parser->parse_children( $element );
return array(
'blockName' => 'acf/hero',
'attrs' => $attrs,
'innerBlocks' => $inner_blocks,
'innerHTML' => '',
'innerContent' => array(),
);
};
return $renderers;
}, 10, 2 );blockstudio/parser/element_mapping
Override the default HTML element to block mapping. By default, standard HTML elements like <h1>, <p>, and <img> map to core WordPress blocks. Use this filter to point any element to a different block.
add_filter( 'blockstudio/parser/element_mapping', function( $mapping ) {
$mapping['h1'] = 'custom/heading';
$mapping['h2'] = 'custom/heading';
$mapping['p'] = 'custom/paragraph';
$mapping['img'] = 'custom/image';
return $mapping;
}, 10, 2 );Pages
blockstudio/pages/paths
Filter the directories scanned for page templates.
add_filter( 'blockstudio/pages/paths', function( $paths ) {
$paths[] = get_template_directory() . '/custom-pages';
$paths[] = MY_PLUGIN_DIR . '/pages';
return $paths;
} );blockstudio/pages/create_post_data
Filter post data before creating a new page.
add_filter( 'blockstudio/pages/create_post_data', function( $post_data, $page_data ) {
$post_data['post_author'] = 1;
return $post_data;
}, 10, 2 );blockstudio/pages/update_post_data
Filter post data before updating an existing page.
add_filter( 'blockstudio/pages/update_post_data', function( $post_data, $post, $page_data ) {
return $post_data;
}, 10, 3 );blockstudio/pages/synced
Action fired after all pages have been synced.
add_action( 'blockstudio/pages/synced', function( $registry ) {
// $registry is the Page_Registry instance
} );blockstudio/pages/post_created
Action fired after a page post is created.
add_action( 'blockstudio/pages/post_created', function( $post_id, $page_data ) {
// Do something after page creation
}, 10, 2 );blockstudio/pages/post_updated
Action fired after a page post is updated.
add_action( 'blockstudio/pages/post_updated', function( $post_id, $page_data ) {
// Do something after page update
}, 10, 2 );Patterns
blockstudio/patterns/paths
Filter the directories scanned for pattern templates.
add_filter( 'blockstudio/patterns/paths', function( $paths ) {
$paths[] = get_stylesheet_directory() . '/custom-patterns';
$paths[] = MY_PLUGIN_PATH . '/patterns';
return $paths;
} );blockstudio/patterns/registered
Action fired after all patterns have been registered.
add_action( 'blockstudio/patterns/registered', function( $registry ) {
// $registry is the Pattern_Registry instance
} );