mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 22:30:04 +00:00
Block Editor: Backport the Global Styles Variations endpoint.
This include the /global-styles/themes/{theme}/variations rest endpoint into core.
The endpoint will be used by the site editor to display alternative theme styles to the user.
Props gziolo, oandregal.
See #55505.
git-svn-id: https://develop.svn.wordpress.org/trunk@53072 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -449,4 +449,32 @@ class WP_Theme_JSON_Resolver {
|
||||
static::$i18n_schema = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the style variations defined by the theme.
|
||||
*
|
||||
* @since 6.0.0
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function get_style_variations() {
|
||||
$variations = array();
|
||||
$base_directory = get_stylesheet_directory() . '/styles';
|
||||
if ( is_dir( $base_directory ) ) {
|
||||
$nested_files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $base_directory ) );
|
||||
$nested_html_files = iterator_to_array( new RegexIterator( $nested_files, '/^.+\.json$/i', RecursiveRegexIterator::GET_MATCH ) );
|
||||
ksort( $nested_html_files );
|
||||
foreach ( $nested_html_files as $path => $file ) {
|
||||
$decoded_file = wp_json_file_decode( $path, array( 'associative' => true ) );
|
||||
if ( is_array( $decoded_file ) ) {
|
||||
$translated = static::translate( $decoded_file, wp_get_theme()->get( 'TextDomain' ) );
|
||||
$variation = ( new WP_Theme_JSON( $translated ) )->get_raw_data();
|
||||
if ( empty( $variation['title'] ) ) {
|
||||
$variation['title'] = basename( $path, '.json' );
|
||||
}
|
||||
$variations[] = $variation;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $variations;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user