Skip to content

Commit

Permalink
Blocks: Add automatic RTL handlind for block styles registered from m…
Browse files Browse the repository at this point in the history
…etadata

Related Gutenberg issue: WordPress/gutenberg#28274

With this change it is going to be possible to use the same pattern that wp_style_add_data uses for RTL handling. If the block style file with "-rtl.css" is included in addition to the regular style referenced in "block.json" file then it is going to be automatically registered.

Props swisspidy, aristath.
See #52301.



git-svn-id: https://develop.svn.wordpress.org/trunk@49982 602fd350-edb4-49c9-b593-d223f7449a82
  • Loading branch information
gziolo committed Jan 19, 2021
1 parent 987d16d commit 69e0fe8
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/wp-includes/blocks.php
Original file line number Diff line number Diff line change
Expand Up @@ -169,12 +169,17 @@ function register_block_style_handle( $metadata, $field_name ) {

$style_handle = generate_block_asset_handle( $metadata['name'], $field_name );
$block_dir = dirname( $metadata['file'] );
$style_file = realpath( "$block_dir/$style_path" );
$result = wp_register_style(
$style_handle,
plugins_url( $style_path, $metadata['file'] ),
array(),
filemtime( realpath( "$block_dir/$style_path" ) )
filemtime( $style_file )
);
if ( file_exists( str_replace( '.css', '-rtl.css', $style_file ) ) ) {
wp_style_add_data( $style_handle, 'rtl', 'replace' );
}

return $result ? $style_handle : false;
}

Expand Down
1 change: 1 addition & 0 deletions tests/phpunit/data/blocks/notice/block-rtl.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* Test CSS file - RTL version */
1 change: 1 addition & 0 deletions tests/phpunit/tests/blocks/register.php
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,7 @@ function test_success_register_block_style_handle() {
$result = register_block_style_handle( $metadata, 'style' );

$this->assertSame( 'unit-tests-test-block-style', $result );
$this->assertSame( 'replace', wp_styles()->get_data( 'unit-tests-test-block-style', 'rtl' ) );
}

/**
Expand Down

0 comments on commit 69e0fe8

Please sign in to comment.