wpseek.com
Eine auf WordPress spezialiserte Suchmaschine für Entwickler und Theme-Autoren



get_registered_block_templates › WordPress Function

Seitn/v
Veraltetn/v
get_registered_block_templates ( $query )
Definiert in:
Codex:

Noch keine Beschreibung.



Quellcode

function get_registered_block_templates( $query ) {
	$template_files = _get_block_templates_files( 'wp_template', $query );
	$query_result   = array();

	// _get_block_templates_files seems broken, it does not obey the query.
	if ( isset( $query['slug__in'] ) && is_array( $query['slug__in'] ) ) {
		$template_files = array_filter(
			$template_files,
			function ( $template_file ) use ( $query ) {
				return in_array( $template_file['slug'], $query['slug__in'], true );
			}
		);
	}

	foreach ( $template_files as $template_file ) {
		$query_result[] = _build_block_template_result_from_file( $template_file, 'wp_template' );
	}

	// Add templates registered through the template registry. Filtering out the
	// ones which have a theme file.
	$registered_templates          = WP_Block_Templates_Registry::get_instance()->get_by_query( $query );
	$matching_registered_templates = array_filter(
		$registered_templates,
		function ( $registered_template ) use ( $template_files ) {
			foreach ( $template_files as $template_file ) {
				if ( $template_file['slug'] === $registered_template->slug ) {
					return false;
				}
			}
			return true;
		}
	);

	$query_result = array_merge( $query_result, $matching_registered_templates );

	// Templates added by PHP filter also count as registered templates.
	/** This filter is documented in wp-includes/block-template-utils.php */
	return apply_filters( 'get_block_templates', $query_result, $query, 'wp_template' );
}