Editor: fix duplication in templates list.

Excludes parent template when a child template is defined during template retrieval.

Props oandregal, mukesh27, flixos90, bgardner.
See #57756.

Built from https://develop.svn.wordpress.org/trunk@56329


git-svn-id: http://core.svn.wordpress.org/trunk@55841 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
isabel_brison 2023-08-01 02:12:24 +00:00
parent 29d0198455
commit 6359762e66
2 changed files with 12 additions and 4 deletions

View File

@ -360,6 +360,14 @@ function _get_block_templates_files( $template_type, $query = array() ) {
continue;
}
/*
* The child theme items (stylesheet) are processed before the parent theme's (template).
* If a child theme defines a template, prevent the parent template from being added to the list as well.
*/
if ( isset( $template_files[ $template_slug ] ) ) {
continue;
}
$new_template_item = array(
'slug' => $template_slug,
'path' => $template_file,
@ -370,7 +378,7 @@ function _get_block_templates_files( $template_type, $query = array() ) {
if ( 'wp_template_part' === $template_type ) {
$candidate = _add_block_template_part_area_info( $new_template_item );
if ( ! isset( $area ) || ( isset( $area ) && $area === $candidate['area'] ) ) {
$template_files[] = $candidate;
$template_files[ $template_slug ] = $candidate;
}
}
@ -380,13 +388,13 @@ function _get_block_templates_files( $template_type, $query = array() ) {
! $post_type ||
( $post_type && isset( $candidate['postTypes'] ) && in_array( $post_type, $candidate['postTypes'], true ) )
) {
$template_files[] = $candidate;
$template_files[ $template_slug ] = $candidate;
}
}
}
}
return $template_files;
return array_values( $template_files );
}
/**

View File

@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
$wp_version = '6.4-alpha-56327';
$wp_version = '6.4-alpha-56329';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.