From 6359762e66e577eec2eebbd26275b5bfc38bd2da Mon Sep 17 00:00:00 2001 From: isabel_brison Date: Tue, 1 Aug 2023 02:12:24 +0000 Subject: [PATCH] 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 --- wp-includes/block-template-utils.php | 14 +++++++++++--- wp-includes/version.php | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/wp-includes/block-template-utils.php b/wp-includes/block-template-utils.php index 9cec417a7a..226b2068da 100644 --- a/wp-includes/block-template-utils.php +++ b/wp-includes/block-template-utils.php @@ -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 ); } /** diff --git a/wp-includes/version.php b/wp-includes/version.php index 784c320074..c754fddf6a 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -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.