-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Editor: Backport hooks to filter
theme.json
data from Gutenberg to …
…6.1. This changeset ports the work done in Gutenberg (released in 14.1) to add hooks to filter the `theme.json` data. Specifically, it adds the following filters: `theme_json_default`, `theme_json_blocks`, `theme_json_theme`, and `theme_json_user`. For more details, see the following Gutenberg pull requests: - [WordPress/gutenberg#44015 gutenberg#44015]: Make global styles data filterable - [WordPress/gutenberg#44109 gutenberg#44109]: Prepare `WP_Theme_JSON_Data` class for backporting - [WordPress/gutenberg#44159 gutenberg#44159]: Update hook's names from `global_styles_*` to `theme_json_*` Props oandregal, czapla, gziolo, bernhard-reiter. See #56467. Built from https://develop.svn.wordpress.org/trunk@54251 git-svn-id: https://core.svn.wordpress.org/trunk@53810 1a063a9b-81f0-0310-95a4-ce76da25c4cd
- Loading branch information
Showing
4 changed files
with
121 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
<?php | ||
/** | ||
* WP_Theme_JSON_Data class | ||
* | ||
* @package WordPress | ||
* @subpackage Theme | ||
* @since 6.1.0 | ||
*/ | ||
|
||
/** | ||
* Class to provide access to update a theme.json structure. | ||
*/ | ||
class WP_Theme_JSON_Data { | ||
|
||
/** | ||
* Container of the data to update. | ||
* | ||
* @since 6.1.0 | ||
* @var WP_Theme_JSON | ||
*/ | ||
private $theme_json = null; | ||
|
||
/** | ||
* The origin of the data: default, theme, user, etc. | ||
* | ||
* @since 6.1.0 | ||
* @var string | ||
*/ | ||
private $origin = ''; | ||
|
||
/** | ||
* Constructor. | ||
* | ||
* @since 6.1.0 | ||
* | ||
* @link https://developer.wordpress.org/block-editor/reference-guides/theme-json-reference/ | ||
* | ||
* @param array $data Array following the theme.json specification. | ||
* @param string $origin The origin of the data: default, theme, user. | ||
*/ | ||
public function __construct( $data = array(), $origin = 'theme' ) { | ||
$this->origin = $origin; | ||
$this->theme_json = new WP_Theme_JSON( $data, $this->origin ); | ||
} | ||
|
||
/** | ||
* Updates the theme.json with the the given data. | ||
* | ||
* @since 6.1.0 | ||
* | ||
* @param array $new_data Array following the theme.json specification. | ||
* | ||
* @return WP_Theme_JSON_Data The own instance with access to the modified data. | ||
*/ | ||
public function update_with( $new_data ) { | ||
$this->theme_json->merge( new WP_Theme_JSON( $new_data, $this->origin ) ); | ||
return $this; | ||
} | ||
|
||
/** | ||
* Returns an array containing the underlying data | ||
* following the theme.json specification. | ||
* | ||
* @since 6.1.0 | ||
* | ||
* @return array | ||
*/ | ||
public function get_data() { | ||
return $this->theme_json->get_raw_data(); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters