WordPress/wp-includes/block-bindings/pattern-overrides.php
youknowriad 42abc00010 Editor: Update pattern overrides attribute format.
Updates the pattern block's overrides attribute data structure and renames it to content.
This new format should prove more flexible for the future.

Props talldanwp, gziolo.
Fixes #60456.
Built from https://develop.svn.wordpress.org/trunk@57585


git-svn-id: http://core.svn.wordpress.org/trunk@57086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-02-12 08:49:12 +00:00

47 lines
1.4 KiB
PHP

<?php
/**
* Pattern Overrides source for the Block Bindings.
*
* @since 6.5.0
* @package WordPress
* @subpackage Block Bindings
*/
/**
* Gets value for the Pattern Overrides source.
*
* @since 6.5.0
* @access private
*
* @param array $source_args Array containing source arguments used to look up the override value.
* Example: array( "key" => "foo" ).
* @param WP_Block $block_instance The block instance.
* @param string $attribute_name The name of the target attribute.
* @return mixed The value computed for the source.
*/
function _block_bindings_pattern_overrides_get_value( array $source_args, $block_instance, string $attribute_name ) {
if ( empty( $block_instance->attributes['metadata']['id'] ) ) {
return null;
}
$block_id = $block_instance->attributes['metadata']['id'];
return _wp_array_get( $block_instance->context, array( 'pattern/overrides', $block_id, 'values', $attribute_name ), null );
}
/**
* Registers Pattern Overrides source in the Block Bindings registry.
*
* @since 6.5.0
* @access private
*/
function _register_block_bindings_pattern_overrides_source() {
register_block_bindings_source(
'core/pattern-overrides',
array(
'label' => _x( 'Pattern Overrides', 'block bindings source' ),
'get_value_callback' => '_block_bindings_pattern_overrides_get_value',
)
);
}
add_action( 'init', '_register_block_bindings_pattern_overrides_source' );