Customize: Ensure media playlists get initialized after selective refresh; expose new wp.playlist.initialize() API.
In particular allows audio and video playlists to be added to the Text widget and previewed. Props bpayton, westonruter. See #40854. Fixes #42495. Built from https://develop.svn.wordpress.org/trunk@42613 git-svn-id: http://core.svn.wordpress.org/trunk@42442 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
@@ -57,6 +57,10 @@ class WP_Widget_Text extends WP_Widget {
|
||||
|
||||
wp_add_inline_script( 'text-widgets', sprintf( 'wp.textWidgets.idBases.push( %s );', wp_json_encode( $this->id_base ) ) );
|
||||
|
||||
if ( $this->is_preview() ) {
|
||||
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_preview_scripts' ) );
|
||||
}
|
||||
|
||||
// Note that the widgets component in the customizer will also do the 'admin_print_scripts-widgets.php' action in WP_Customize_Widgets::print_scripts().
|
||||
add_action( 'admin_print_scripts-widgets.php', array( $this, 'enqueue_admin_scripts' ) );
|
||||
|
||||
@@ -393,6 +397,22 @@ class WP_Widget_Text extends WP_Widget {
|
||||
return $instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue preview scripts.
|
||||
*
|
||||
* These scripts normally are enqueued just-in-time when a playlist shortcode is used.
|
||||
* However, in the customizer, a playlist shortcode may be used in a text widget and
|
||||
* dynamically added via selective refresh, so it is important to unconditionally enqueue them.
|
||||
*
|
||||
* @since 4.9.3
|
||||
*/
|
||||
public function enqueue_preview_scripts() {
|
||||
require_once dirname( dirname( __FILE__ ) ) . '/media.php';
|
||||
|
||||
wp_playlist_scripts( 'audio' );
|
||||
wp_playlist_scripts( 'video' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the required scripts and styles for the widget control.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user