WordPress.org

Make WordPress Core

Ticket #51566: 51566.diff

File 51566.diff, 3.0 KB (added by noisysocks, 4 months ago)
  • src/wp-includes/class-wp-embed.php

    diff --git a/src/wp-includes/class-wp-embed.php b/src/wp-includes/class-wp-embed.php
    index aff25412c3..4b189f9334 100644
    a b class WP_Embed { 
    3131                // Hack to get the [embed] shortcode to run before wpautop().
    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().
    3637                add_shortcode( 'embed', '__return_false' );
    class WP_Embed { 
    3839                // Attempts to embed all URLs in a post.
    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.
    4345                add_action( 'edit_form_advanced', array( $this, 'maybe_run_ajax_cache' ) );
  • src/wp-includes/default-filters.php

    diff --git a/src/wp-includes/default-filters.php b/src/wp-includes/default-filters.php
    index d2a89ed4d1..8663196248 100644
    a b add_filter( 'widget_text_content', 'wp_filter_content_tags' ); 
    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.
    216216
     217add_filter( 'widget_block_content', 'do_blocks', 9 );
     218add_filter( 'widget_block_content', 'do_shortcode', 11 );
     219
    217220add_filter( 'wp_get_custom_css', 'wp_replace_insecure_home_url' );
    218221
    219222// RSS filters.
  • src/wp-includes/widgets/class-wp-widget-block.php

    diff --git a/src/wp-includes/widgets/class-wp-widget-block.php b/src/wp-includes/widgets/class-wp-widget-block.php
    index 4c5abb38a4..b191bfaf31 100644
    a b class WP_Widget_Block extends WP_Widget { 
    6666                        $args['before_widget']
    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'];
    8586        }