get_block_template() WP 5.8.0

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() 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 );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *