wp_get_post_content_block_attributes()
Retrieves Post Content block attributes from the current post template.
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
No Hooks.
Returns
Array|null. Post Content block attributes array or null if Post Content block doesn't exist.
Usage
wp_get_post_content_block_attributes();
Notes
- Global. Int.
$post_ID
Changelog
| Since 6.3.0 | Introduced. |
| Since 6.4.0 | Return null if there is no post content block. |
wp_get_post_content_block_attributes() wp get post content block attributes code WP 6.9.1
function wp_get_post_content_block_attributes() {
global $post_ID;
$is_block_theme = wp_is_block_theme();
if ( ! $is_block_theme || ! $post_ID ) {
return null;
}
$template_slug = get_page_template_slug( $post_ID );
if ( ! $template_slug ) {
$post_slug = 'singular';
$page_slug = 'singular';
$template_types = get_block_templates();
foreach ( $template_types as $template_type ) {
if ( 'page' === $template_type->slug ) {
$page_slug = 'page';
}
if ( 'single' === $template_type->slug ) {
$post_slug = 'single';
}
}
$what_post_type = get_post_type( $post_ID );
switch ( $what_post_type ) {
case 'page':
$template_slug = $page_slug;
break;
default:
$template_slug = $post_slug;
break;
}
}
$current_template = get_block_templates( array( 'slug__in' => array( $template_slug ) ) );
if ( ! empty( $current_template ) ) {
$template_blocks = parse_blocks( $current_template[0]->content );
$post_content_block = wp_get_first_block( $template_blocks, 'core/post-content' );
if ( isset( $post_content_block['attrs'] ) ) {
return $post_content_block['attrs'];
}
}
return null;
}