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.7.1
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; }