WordPress.org

Make WordPress Core

Changeset 50777


Ignore:
Timestamp:
04/21/2021 09:30:40 AM (8 months ago)
Author:
gziolo
Message:

Editor: Shape block editor filters to work better with the Gutenberg plugin

This should allow to use new filters in the Gutenberg plugin and therefore it prevents deprecation warnings when in the debug mode.

See #52920.

Location:
trunk
Files:
2 edited

Legend:

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

    r50776 r50777  
    6767function get_block_categories( $editor_name_or_post ) {
    6868    // Assume the post editor when the WP_Post object passed.
    69     $editor_name        = is_object( $editor_name_or_post ) ? 'post-editor' : $editor_name_or_post;
    70     $default_categories = get_default_block_categories();
     69    $editor_name      = is_object( $editor_name_or_post ) ? 'post-editor' : $editor_name_or_post;
     70    $block_categories = get_default_block_categories();
    7171
    7272    /**
     
    7575     * @since 5.8.0
    7676     *
    77      * @param array[] $default_categories Array of categories for block types.
    78      */
    79     $block_categories = apply_filters( "block_categories_{$editor_name}", $default_categories );
     77     * @param array[] $block_categories Array of categories for block types.
     78     * @param string  $editor_name      The name of the editor, e.g. 'post-editor'.
     79     */
     80    $block_categories = apply_filters( 'block_categories_all', $block_categories, $editor_name );
    8081    if ( 'post-editor' === $editor_name ) {
    8182        $post = is_object( $editor_name_or_post ) ? $editor_name_or_post : get_post();
     
    9091         * @param WP_Post $post             Post being loaded.
    9192         */
    92         $block_categories = apply_filters_deprecated( 'block_categories', array( $block_categories, $post ), '5.8.0', "block_categories_{$editor_name}" );
     93        $block_categories = apply_filters_deprecated( 'block_categories', array( $block_categories, $post ), '5.8.0', 'block_categories_all' );
    9394    }
    9495
     
    109110
    110111    /**
    111      * Filters the allowed block types for the given editor, defaulting to true (all
    112      * registered block types supported).
     112     * Filters the allowed block types for all editor types, defaulting to `true`
     113     * (all registered block types supported).
     114     *
    113115     *
    114116     * @since 5.8.0
     
    116118     * @param bool|array $allowed_block_types Array of block type slugs, or
    117119     *                                        boolean to enable/disable all.
    118      */
    119     $allowed_block_types = apply_filters( "allowed_block_types_{$editor_name}", $allowed_block_types );
     120     * @param string     $editor_name         The name of the editor, e.g. 'post-editor'.
     121     */
     122    $allowed_block_types = apply_filters( 'allowed_block_types_all', $allowed_block_types, $editor_name );
     123
     124    /**
     125     * Filters the allowed block types for the given editor, defaulting to `true`
     126     * (all registered block types supported).
     127     *
     128     * The dynamic portion of the hook name, `$editor_name`, refers to the name
     129     * of the editor type, e.g. 'post-editor', 'site-editor', etc.
     130     *
     131     * @since 5.8.0
     132     *
     133     * @param bool|array $allowed_block_types Array of block type slugs, or
     134     *                                        boolean to enable/disable all.
     135     * @param string     $editor_name         The name of the editor, e.g. 'post-editor'.
     136     */
     137    $allowed_block_types = apply_filters( "allowed_block_types_{$editor_name}", $allowed_block_types, $editor_name );
    120138    if ( 'post-editor' === $editor_name ) {
    121139        $post = get_post();
     
    132150         * @param WP_Post    $post                The post resource data.
    133151         */
    134         $allowed_block_types = apply_filters_deprecated( 'allowed_block_types', array( $allowed_block_types, $post ), '5.8.0', "allowed_block_types_{$editor_name}" );
     152        $allowed_block_types = apply_filters_deprecated( 'allowed_block_types', array( $allowed_block_types, $post ), '5.8.0', 'allowed_block_types_all' );
    135153    }
    136154
     
    242260
    243261    /**
     262     * Filters the settings to pass to the block editor for all editor type.
     263     *
     264     * @since 5.8.0
     265     *
     266     * @param array  $editor_settings Default editor settings.
     267     * @param string $editor_name     The name of the editor, e.g. 'post-editor'.
     268     */
     269    $editor_settings = apply_filters( 'block_editor_settings_all', $editor_settings, $editor_name );
     270
     271    /**
    244272     * Filters the settings to pass to the block editor for a given editor type.
    245273     *
    246      * @since 5.8.0
    247      *
    248      * @param array $editor_settings Default editor settings.
    249      */
    250     $editor_settings = apply_filters( "block_editor_settings_{$editor_name}", $editor_settings );
     274     * The dynamic portion of the hook name, `$editor_name`, refers to the name
     275     * of the editor type, e.g. 'post-editor', 'site-editor', etc.
     276     *
     277     * @since 5.8.0
     278     *
     279     * @param array  $editor_settings Default editor settings.
     280     * @param string $editor_name     The name of the editor, e.g. 'post-editor'.
     281     */
     282    $editor_settings = apply_filters( "block_editor_settings_{$editor_name}", $editor_settings, $editor_name );
    251283    if ( 'post-editor' === $editor_name ) {
    252284        $post = get_post();
     
    261293         * @param WP_Post $post            Post being edited.
    262294         */
    263         $editor_settings = apply_filters_deprecated( 'block_editor_settings', array( $editor_settings, $post ), '5.8.0', "block_editor_settings_{$editor_name}" );
     295        $editor_settings = apply_filters_deprecated( 'block_editor_settings', array( $editor_settings, $post ), '5.8.0', 'block_editor_settings_all' );
    264296    }
    265297
  • trunk/tests/phpunit/tests/blocks/block-editor.php

    r50776 r50777  
    253253            return array( 'test/filtered-my-block' );
    254254        }
    255         function filter_block_categories_my_editor() {
    256             return array(
    257                 array(
    258                     'slug'  => 'filtered-my-category',
    259                     'title' => 'Filtered My Category',
    260                     'icon'  => null,
    261                 ),
    262             );
    263         }
    264255        function filter_block_editor_settings_my_editor( $editor_settings ) {
    265256            $editor_settings['maxUploadFileSize'] = 12345;
     
    269260
    270261        add_filter( 'allowed_block_types_my-editor', 'filter_allowed_block_types_my_editor', 10, 1 );
    271         add_filter( 'block_categories_my-editor', 'filter_block_categories_my_editor', 10, 1 );
    272262        add_filter( 'block_editor_settings_my-editor', 'filter_block_editor_settings_my_editor', 10, 1 );
    273263
     
    275265
    276266        remove_filter( 'allowed_block_types_my-editor', 'filter_allowed_block_types_my_editor' );
    277         remove_filter( 'block_categories_my-editor', 'filter_block_categories_my_editor' );
    278267        remove_filter( 'block_editor_settings_my-editor', 'filter_block_editor_settings_my_editor' );
    279268
    280269        $this->assertSameSets( array( 'test/filtered-my-block' ), $settings['allowedBlockTypes'] );
    281         $this->assertSameSets(
    282             array(
    283                 array(
    284                     'slug'  => 'filtered-my-category',
    285                     'title' => 'Filtered My Category',
     270        $this->assertSame( 12345, $settings['maxUploadFileSize'] );
     271    }
     272
     273    /**
     274     * @ticket 52920
     275     */
     276    function test_get_block_editor_settings_overrides_default_settings_any_editor() {
     277        function filter_allowed_block_types_any_editor() {
     278            return array( 'test/filtered-any-block' );
     279        }
     280        function filter_block_categories_any_editor() {
     281            return array(
     282                array(
     283                    'slug'  => 'filtered-any-category',
     284                    'title' => 'Filtered Any Category',
     285                    'icon'  => null,
     286                ),
     287            );
     288        }
     289        function filter_block_editor_settings_any_editor( $editor_settings ) {
     290            $editor_settings['maxUploadFileSize'] = 54321;
     291
     292            return $editor_settings;
     293        }
     294
     295        add_filter( 'allowed_block_types_all', 'filter_allowed_block_types_any_editor', 10, 1 );
     296        add_filter( 'block_categories_all', 'filter_block_categories_any_editor', 10, 1 );
     297        add_filter( 'block_editor_settings_all', 'filter_block_editor_settings_any_editor', 10, 1 );
     298
     299        $settings = get_block_editor_settings( 'any-editor' );
     300
     301        remove_filter( 'allowed_block_types_all', 'filter_allowed_block_types_any_editor' );
     302        remove_filter( 'block_categories_all', 'filter_block_categories_any_editor' );
     303        remove_filter( 'block_editor_settings_all', 'filter_block_editor_settings_any_editor' );
     304
     305        $this->assertSameSets( array( 'test/filtered-any-block' ), $settings['allowedBlockTypes'] );
     306        $this->assertSameSets(
     307            array(
     308                array(
     309                    'slug'  => 'filtered-any-category',
     310                    'title' => 'Filtered Any Category',
    286311                    'icon'  => null,
    287312                ),
     
    289314            $settings['blockCategories']
    290315        );
    291         $this->assertSame( 12345, $settings['maxUploadFileSize'] );
     316        $this->assertSame( 54321, $settings['maxUploadFileSize'] );
    292317    }
    293318
Note: See TracChangeset for help on using the changeset viewer.