mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 14:20:15 +00:00
Site Editor: Show correct theme per template or template part.
Child themes inherit templates and template parts from the parent theme. In Site Editor, the "Added by" column for a template defaults to displaying the child theme, even though it is inherited from the parent, creating confusion as to where the actual templates are located. This commit ensures that the parent theme is correctly displayed in that scenario. Follow-up to [51003], [52062]. Props ptahdunbar, WoutPitje, petaryoast, costdev, poena, audrasjb, SergeyBiryukov. Fixes #55437. git-svn-id: https://develop.svn.wordpress.org/trunk@54860 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -503,7 +503,7 @@ function _build_block_template_result_from_file( $template_file, $template_type
|
||||
|
||||
$template = new WP_Block_Template();
|
||||
$template->id = $theme . '//' . $template_file['slug'];
|
||||
$template->theme = $theme;
|
||||
$template->theme = ! empty( $template_file['theme'] ) ? $template_file['theme'] : $theme;
|
||||
$template->content = _inject_theme_attribute_in_block_template_content( $template_content );
|
||||
$template->slug = $template_file['slug'];
|
||||
$template->source = 'theme';
|
||||
|
||||
@@ -123,6 +123,25 @@ class Tests_Block_Template_Utils extends WP_UnitTestCase {
|
||||
$this->assertSame( WP_TEMPLATE_PART_AREA_HEADER, $template_part->area );
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that _build_block_template_result_from_post() returns the correct theme
|
||||
* for the template when a child theme is active.
|
||||
*
|
||||
* @ticket 55437
|
||||
*
|
||||
* @covers ::_build_block_template_result_from_post
|
||||
*/
|
||||
function test_build_block_template_result_from_post_with_child_theme() {
|
||||
switch_theme( 'block-theme-child' );
|
||||
|
||||
$template = _build_block_template_result_from_post(
|
||||
self::$template_post,
|
||||
'wp_template'
|
||||
);
|
||||
|
||||
$this->assertSame( self::TEST_THEME, $template->theme );
|
||||
}
|
||||
|
||||
function test_build_block_template_result_from_file() {
|
||||
$template = _build_block_template_result_from_file(
|
||||
array(
|
||||
@@ -161,6 +180,29 @@ class Tests_Block_Template_Utils extends WP_UnitTestCase {
|
||||
$this->assertSame( WP_TEMPLATE_PART_AREA_HEADER, $template_part->area );
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that _build_block_template_result_from_file() returns the correct theme
|
||||
* for the template when a child theme is active.
|
||||
*
|
||||
* @ticket 55437
|
||||
*
|
||||
* @covers ::_build_block_template_result_from_file
|
||||
*/
|
||||
function test_build_block_template_result_from_file_with_child_theme() {
|
||||
switch_theme( 'block-theme-child' );
|
||||
|
||||
$template = _build_block_template_result_from_file(
|
||||
array(
|
||||
'slug' => 'single',
|
||||
'path' => __DIR__ . '/../data/templates/template.html',
|
||||
'theme' => self::TEST_THEME,
|
||||
),
|
||||
'wp_template'
|
||||
);
|
||||
|
||||
$this->assertSame( self::TEST_THEME, $template->theme );
|
||||
}
|
||||
|
||||
function test_inject_theme_attribute_in_block_template_content() {
|
||||
$theme = get_stylesheet();
|
||||
$content_without_theme_attribute = '<!-- wp:template-part {"slug":"header","align":"full", "tagName":"header","className":"site-header"} /-->';
|
||||
|
||||
Reference in New Issue
Block a user