WP_Block_Templates_Registry::get_by_query
Retrieves registered templates matching a query.
Метод класса: WP_Block_Templates_Registry{}
Хуков нет.
Возвращает
WP_Block_Template[]. Associative array of $template_name => $template pairs.
Использование
$WP_Block_Templates_Registry = new WP_Block_Templates_Registry(); $WP_Block_Templates_Registry->get_by_query( $query );
- $query(массив)
Arguments to retrieve templates. Optional, empty by default.
По умолчанию: array()
-
slug__in(string[])
List of slugs to include. -
slug__not_in(string[])
List of slugs to skip. - post_type(строка)
Post type to get the templates for.
-
Список изменений
| С версии 6.7.0 | Введена. |
Код WP_Block_Templates_Registry::get_by_query() WP Block Templates Registry::get by query WP 6.9
public function get_by_query( $query = array() ) {
$all_templates = $this->get_all_registered();
if ( ! $all_templates ) {
return array();
}
$query = wp_parse_args(
$query,
array(
'slug__in' => array(),
'slug__not_in' => array(),
'post_type' => '',
)
);
$slugs_to_include = $query['slug__in'];
$slugs_to_skip = $query['slug__not_in'];
$post_type = $query['post_type'];
$matching_templates = array();
foreach ( $all_templates as $template_name => $template ) {
if ( $slugs_to_include && ! in_array( $template->slug, $slugs_to_include, true ) ) {
continue;
}
if ( $slugs_to_skip && in_array( $template->slug, $slugs_to_skip, true ) ) {
continue;
}
if ( $post_type && ! in_array( $post_type, $template->post_types, true ) ) {
continue;
}
$matching_templates[ $template_name ] = $template;
}
return $matching_templates;
}