WordPress.org

Make WordPress Core

Changeset 51058


Ignore:
Timestamp:
06/02/2021 01:17:37 AM (4 months ago)
Author:
noisysocks
Message:

Widget block: Add widget_block_content filter

Adds a new 'widget_block_content' filter to the widget block and hooks
run_shortcode, autoembed, do_blocks, and do_shortcode into it by
default. This is simlar to widget_text_content.

Fixes #51566.
Props talldanwp.

Location:
trunk/src/wp-includes
Files:
3 edited

Legend:

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

    r48586 r51058  
    3232        add_filter( 'the_content', array( $this, 'run_shortcode' ), 8 );
    3333        add_filter( 'widget_text_content', array( $this, 'run_shortcode' ), 8 );
     34        add_filter( 'widget_block_content', array( $this, 'run_shortcode' ), 8 );
    3435
    3536        // Shortcode placeholder for strip_shortcodes().
     
    3940        add_filter( 'the_content', array( $this, 'autoembed' ), 8 );
    4041        add_filter( 'widget_text_content', array( $this, 'autoembed' ), 8 );
     42        add_filter( 'widget_block_content', array( $this, 'autoembed' ), 8 );
    4143
    4244        // After a post is saved, cache oEmbed items via Ajax.
  • trunk/src/wp-includes/default-filters.php

    r51021 r51058  
    214214add_filter( 'widget_text_content', 'wp_replace_insecure_home_url' );
    215215add_filter( 'widget_text_content', 'do_shortcode', 11 ); // Runs after wpautop(); note that $post global will be null when shortcodes run.
     216
     217add_filter( 'widget_block_content', 'do_blocks', 9 );
     218add_filter( 'widget_block_content', 'do_shortcode', 11 );
    216219
    217220add_filter( 'wp_get_custom_css', 'wp_replace_insecure_home_url' );
  • trunk/src/wp-includes/widgets/class-wp-widget-block.php

    r50995 r51058  
    6767        );
    6868
    69         // Handle embeds for block widgets.
    70         //
    71         // When this feature is added to core it may need to be implemented
    72         // differently. WP_Widget_Text is a good reference, that applies a
    73         // filter for its content, which WP_Embed uses in its constructor.
    74         // See https://core.trac.wordpress.org/ticket/51566.
    75         global $wp_embed;
    76         $content = $wp_embed->run_shortcode( $instance['content'] );
    77         $content = $wp_embed->autoembed( $content );
    78 
    79         $content = do_blocks( $content );
    80         $content = do_shortcode( $content );
    81 
    82         echo $content;
     69        /**
     70         * Filters the content of the Block widget before output.
     71         *
     72         * @since 5.8.0
     73         *
     74         * @param string         $content  The widget content.
     75         * @param array          $instance Array of settings for the current widget.
     76         * @param WP_Widget_Text $widget   Current Block widget instance.
     77         */
     78        echo apply_filters(
     79            'widget_block_content',
     80            $instance['content'],
     81            $instance,
     82            $this
     83        );
    8384
    8485        echo $args['after_widget'];
Note: See TracChangeset for help on using the changeset viewer.