mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-04-07 14:14:36 +00:00
Blocks: Add support for variations in block.json` file
We integrated variations with block types and the corresponding REST API endpoint in #52688. It's a follow-up patch to add missing support to the `block.json` metadata file when using `register_block_type`. Some fields for variations are translatable.Therefore, i18n schema was copied over from Gutenberg: https://github.com/WordPress/gutenberg/blob/trunk/packages/blocks/src/api/i18n-block.json. The accompanying implementation was adapted as `translate_settings_using_i18n_schema`. Props: gwwar, swissspidy, schlessera, jorgefilipecosta. Fixes #53238. git-svn-id: https://develop.svn.wordpress.org/trunk@51599 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -4267,6 +4267,54 @@ function wp_check_jsonp_callback( $callback ) {
|
||||
return 0 === $illegal_char_count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads and decodes a JSON file.
|
||||
*
|
||||
* @since 5.9.0
|
||||
*
|
||||
* @param string $filename Path to the JSON file.
|
||||
* @param array $options {
|
||||
* Optional. Options to be used with `json_decode()`.
|
||||
*
|
||||
* @type bool associative Optional. When `true`, JSON objects will be returned as associative arrays.
|
||||
* When `false`, JSON objects will be returned as objects.
|
||||
* }
|
||||
*
|
||||
* @return mixed Returns the value encoded in JSON in appropriate PHP type.
|
||||
* `null` is returned if the file is not found, or its content can't be decoded.
|
||||
*/
|
||||
function wp_json_file_decode( $filename, $options = array() ) {
|
||||
$result = null;
|
||||
$filename = wp_normalize_path( realpath( $filename ) );
|
||||
if ( ! file_exists( $filename ) ) {
|
||||
trigger_error(
|
||||
sprintf(
|
||||
/* translators: %s: Path to the JSON file. */
|
||||
__( "File %s doesn't exist!" ),
|
||||
$filename
|
||||
)
|
||||
);
|
||||
return $result;
|
||||
}
|
||||
|
||||
$options = wp_parse_args( $options, array( 'associative' => false ) );
|
||||
$decoded_file = json_decode( file_get_contents( $filename ), $options['associative'] );
|
||||
|
||||
if ( JSON_ERROR_NONE !== json_last_error() ) {
|
||||
trigger_error(
|
||||
sprintf(
|
||||
/* translators: 1: Path to the JSON file, 2: Error message. */
|
||||
__( 'Error when decoding a JSON file at path %1$s: %2$s' ),
|
||||
$filename,
|
||||
json_last_error_msg()
|
||||
)
|
||||
);
|
||||
return $result;
|
||||
}
|
||||
|
||||
return $decoded_file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the WordPress home page URL.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user