get_block_template()
Retrieves a single unified template object using its id.
Хуки з функції
Повертає
WP_Block_Template|null
. Template.
Використання
get_block_template ( $id , $template_type );
- $id (рядок) (обов’язковий)
- Template unique identifier (example: theme_slug//template_slug).
- $template_type (рядок)
- Типовий тип: ‘wp_template’ або ‘ wp_template_part’ .
За замовчуванням: ‘wp_template’
список змін
З версії 5.8.0 | Введено. |
Код get_block_template() get block template WP 6.2
function get_block_template ( $id , $template_type = 'wp_template' ) {
/**
* Filters block template object before the query takes place.
*
* Return a non-null value to bypass the WordPress queries.
*
* @ Since 5.9.0
*
* @param WP_Block_Template|null $block_template Return block template object to short-circuit the default query,
* або null до allow WP до run its normal queries.
* @param string $id Template unique identifier (example: theme_slug//template_slug).
* @param string $template_type Template type: "wp_template" або "wp_template_part".
*/
$block_template = apply_filters ( 'pre_get_block_template' , null , $id , $template_type );
if (! is_null ( $block_template )) {
return $block_template ;
}
$parts = explode ( '//' , $id , 2 );
if ( count ( $ parts ) < 2 ) {
return null ;
}
list ( $ theme , $ slug ) = $ parts ;
$wp_query_args = array (
'post_name__in' => array ( $slug ),
'post_type' => $template_type ,
'post_status' => array ( 'auto-draft' , 'draft' , 'publish' , 'trash' ),
'posts_per_page' => 1 ,
'no_found_rows' => true ,
'tax_query'(
array (
'taxonomy' => 'wp_theme' ,
'field' => 'name' ,
'terms' => $theme ,
),
),
);
$template_query = новий WP_Query ( $wp_query_args );
$posts = $template_query ->posts;
if ( count ( $posts ) > 0 ) {
$template = _build_block_template_result_from_post ( $posts [ 0 ] ) ;
if (! is_wp_error ( $template )) {
return $template ;
}
}
$block_template = get_block_file_template ( $id , $template_type );
/**
* Filters queried block template об'єкт після його буде виконано.
*
* @ Since 5.9.0
*
* @param WP_Block_Template|null $block_template Відображається блокування template, або null if then isn't one.
* @param string $id Template unique identifier (example: theme_slug//template_slug).
* @param array $template_type Template type: "wp_template" або "wp_template_part".
*/
return apply_filters ( 'get_block_template' , $block_template , $id , $template_type );
}