Make WordPress Core

Changeset 57068


Ignore:
Timestamp:
11/06/2023 02:45:28 PM (13 months ago)
Author:
Bernhard Reiter
Message:

Block Types: Add metadata global attribute.

Add a new global attribute (i.e. an attribute that can be added to all and any blocks) called metadata. This is required for use cases such as allowing the user to assign custom names to blocks, or for making Block Hooks work with user-modified templates/parts/patterns (#59646).

Props Mamaduka, gziolo, get_dave.
Fixes #59797.

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-block-type.php

    r56587 r57068  
    243243     * Attributes supported by every block.
    244244     *
    245      * @since 6.0.0
     245     * @since 6.0.0 Added `lock`.
     246     * @since 6.5.0 Added `metadata`.
    246247     * @var array
    247248     */
    248249    const GLOBAL_ATTRIBUTES = array(
    249         'lock' => array( 'type' => 'object' ),
     250        'lock'     => array( 'type' => 'object' ),
     251        'metadata' => array( 'type' => 'object' ),
    250252    );
    251253
  • trunk/tests/phpunit/tests/admin/includesPost.php

    r56943 r57068  
    936936                'icon'        => 'text',
    937937                'attributes'  => array(
    938                     'lock' => array( 'type' => 'object' ),
     938                    'lock'     => array( 'type' => 'object' ),
     939                    'metadata' => array( 'type' => 'object' ),
    939940                ),
    940941                'usesContext' => array(),
  • trunk/tests/phpunit/tests/blocks/register.php

    r57026 r57068  
    727727     * @ticket 50328
    728728     * @ticket 57585
     729     * @ticket 59797
    729730     */
    730731    public function test_block_registers_with_metadata_fixture() {
     
    745746        $this->assertSame(
    746747            array(
    747                 'message' => array(
     748                'message'  => array(
    748749                    'type' => 'string',
    749750                ),
    750                 'lock'    => array( 'type' => 'object' ),
     751                'lock'     => array( 'type' => 'object' ),
     752                'metadata' => array( 'type' => 'object' ),
    751753            ),
    752754            $result->attributes
  • trunk/tests/phpunit/tests/blocks/wpBlock.php

    r56559 r57068  
    6060    /**
    6161     * @ticket 49927
     62     * @ticket 59797
    6263     */
    6364    public function test_constructor_assigns_block_type_from_registry() {
     
    8485                ),
    8586                'lock'      => array( 'type' => 'object' ),
     87                'metadata'  => array( 'type' => 'object' ),
    8688            ),
    8789            $block->block_type->attributes
  • trunk/tests/phpunit/tests/blocks/wpBlockType.php

    r55457 r57068  
    8181    /*
    8282     * @ticket 55567
     83     * @ticket 59797
    8384     * @covers WP_Block_Type::set_props
    8485     */
     
    8889        $this->assertSameSetsWithIndex(
    8990            array(
    90                 'lock' => array( 'type' => 'object' ),
     91                'lock'     => array( 'type' => 'object' ),
     92                'metadata' => array( 'type' => 'object' ),
    9193            ),
    9294            $block_type->attributes
     
    9698    /*
    9799     * @ticket 55567
     100     * @ticket 59797
    98101     * @covers WP_Block_Type::set_props
    99102     */
     
    103106            array(
    104107                'attributes' => array(
    105                     'lock' => array(
     108                    'lock'     => array(
    106109                        'type' => 'string',
     110                    ),
     111                    'metadata' => array(
     112                        'type' => 'number',
    107113                    ),
    108114                ),
     
    113119        $this->assertSameSetsWithIndex(
    114120            array(
    115                 'lock' => array( 'type' => 'string' ),
     121                'lock'     => array( 'type' => 'string' ),
     122                'metadata' => array( 'type' => 'number' ),
    116123            ),
    117124            $block_type->attributes
  • trunk/tests/phpunit/tests/rest-api/rest-block-type-controller.php

    r56649 r57068  
    199199     * @ticket 57585
    200200     * @ticket 59346
     201     * @ticket 59797
    201202     */
    202203    public function test_get_item_invalid() {
     
    243244        $this->assertSameSetsWithIndex(
    244245            array(
    245                 'lock' => array( 'type' => 'object' ),
     246                'lock'     => array( 'type' => 'object' ),
     247                'metadata' => array( 'type' => 'object' ),
    246248            ),
    247249            $data['attributes']
     
    273275     * @ticket 57585
    274276     * @ticket 59346
     277     * @ticket 59797
    275278     */
    276279    public function test_get_item_defaults() {
     
    317320        $this->assertSameSetsWithIndex(
    318321            array(
    319                 'lock' => array( 'type' => 'object' ),
     322                'lock'     => array( 'type' => 'object' ),
     323                'metadata' => array( 'type' => 'object' ),
    320324            ),
    321325            $data['attributes']
Note: See TracChangeset for help on using the changeset viewer.