mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Editor: Fix loading of assets in blocks in child themes where the directory name starts with the parent theme's directory name. Example: twentyseventeen and twentyseventeen-child.
Props: lgladdy, masteradhoc, audrasjb, rajinsharwar, azaozz. Fixes: #59018. git-svn-id: https://develop.svn.wordpress.org/trunk@56527 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
d67d8d6e94
commit
476db82c2f
@ -150,8 +150,8 @@ function register_block_script_handle( $metadata, $field_name, $index = 0 ) {
|
||||
* Determine if the block script was registered in a theme, by checking if the script path starts with either
|
||||
* the parent (template) or child (stylesheet) directory path.
|
||||
*/
|
||||
$is_parent_theme_block = str_starts_with( $script_path_norm, $template_path_norm );
|
||||
$is_child_theme_block = str_starts_with( $script_path_norm, $stylesheet_path_norm );
|
||||
$is_parent_theme_block = str_starts_with( $script_path_norm, trailingslashit( $template_path_norm ) );
|
||||
$is_child_theme_block = str_starts_with( $script_path_norm, trailingslashit( $stylesheet_path_norm ) );
|
||||
$is_theme_block = ( $is_parent_theme_block || $is_child_theme_block );
|
||||
|
||||
$script_uri = '';
|
||||
@ -270,8 +270,8 @@ function register_block_style_handle( $metadata, $field_name, $index = 0 ) {
|
||||
|
||||
// Determine if the block style was registered in a theme, by checking if the script path starts with either
|
||||
// the parent (template) or child (stylesheet) directory path.
|
||||
$is_parent_theme_block = str_starts_with( $style_path_norm, $template_path_norm );
|
||||
$is_child_theme_block = str_starts_with( $style_path_norm, $stylesheet_path_norm );
|
||||
$is_parent_theme_block = str_starts_with( $style_path_norm, trailingslashit( $template_path_norm ) );
|
||||
$is_child_theme_block = str_starts_with( $style_path_norm, trailingslashit( $stylesheet_path_norm ) );
|
||||
$is_theme_block = ( $is_parent_theme_block || $is_child_theme_block );
|
||||
|
||||
if ( $is_core_block ) {
|
||||
|
||||
@ -270,6 +270,21 @@ class Tests_Blocks_Register extends WP_UnitTestCase {
|
||||
$result = register_block_script_handle( $metadata, 'script' );
|
||||
|
||||
$this->assertSame( 'unit-tests-test-block-script', $result );
|
||||
|
||||
// Test the behavior directly within the unit test
|
||||
$this->assertFalse(
|
||||
strpos(
|
||||
wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $metadata['script'] ) ),
|
||||
trailingslashit( wp_normalize_path( get_template_directory() ) )
|
||||
) === 0
|
||||
);
|
||||
|
||||
$this->assertFalse(
|
||||
strpos(
|
||||
wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $metadata['script'] ) ),
|
||||
trailingslashit( wp_normalize_path( get_stylesheet_directory() ) )
|
||||
) === 0
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -438,6 +453,21 @@ class Tests_Blocks_Register extends WP_UnitTestCase {
|
||||
wp_normalize_path( realpath( DIR_TESTDATA . '/blocks/notice/block.css' ) ),
|
||||
wp_normalize_path( wp_styles()->get_data( 'unit-tests-test-block-style', 'path' ) )
|
||||
);
|
||||
|
||||
// Test the behavior directly within the unit test
|
||||
$this->assertFalse(
|
||||
strpos(
|
||||
wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $metadata['style'] ) ),
|
||||
trailingslashit( wp_normalize_path( get_template_directory() ) )
|
||||
) === 0
|
||||
);
|
||||
|
||||
$this->assertFalse(
|
||||
strpos(
|
||||
wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $metadata['style'] ) ),
|
||||
trailingslashit( wp_normalize_path( get_stylesheet_directory() ) )
|
||||
) === 0
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user