diff --git a/src/js/_enqueues/vendor/mediaelement/wp-mediaelement.js b/src/js/_enqueues/vendor/mediaelement/wp-mediaelement.js index c43c90289e..52e1bbd32f 100644 --- a/src/js/_enqueues/vendor/mediaelement/wp-mediaelement.js +++ b/src/js/_enqueues/vendor/mediaelement/wp-mediaelement.js @@ -19,6 +19,8 @@ * @return {void} */ function initialize() { + var selectors = []; + if ( typeof _wpmejsSettings !== 'undefined' ) { settings = $.extend( true, {}, _wpmejsSettings ); } @@ -63,8 +65,18 @@ } }; + if ( 'undefined' === typeof settings.videoShortcodeLibrary || 'mediaelement' === settings.videoShortcodeLibrary ) { + selectors.push( '.wp-video-shortcode' ); + } + if ( 'undefined' === typeof settings.audioShortcodeLibrary || 'mediaelement' === settings.audioShortcodeLibrary ) { + selectors.push( '.wp-audio-shortcode' ); + } + if ( ! selectors.length ) { + return; + } + // Only initialize new media elements. - $( '.wp-audio-shortcode, .wp-video-shortcode' ) + $( selectors.join( ', ' ) ) .not( '.mejs-container' ) .filter(function () { return ! $( this ).parent().hasClass( 'mejs-mediaelement' ); diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php index b430759595..359e172a7f 100644 --- a/src/wp-includes/script-loader.php +++ b/src/wp-includes/script-loader.php @@ -1111,6 +1111,10 @@ function wp_default_scripts( $scripts ) { 'pluginPath' => includes_url( 'js/mediaelement/', 'relative' ), 'classPrefix' => 'mejs-', 'stretching' => 'responsive', + /** This filter is documented in wp-includes/media.php */ + 'audioShortcodeLibrary' => apply_filters( 'wp_audio_shortcode_library', 'mediaelement' ), + /** This filter is documented in wp-includes/media.php */ + 'videoShortcodeLibrary' => apply_filters( 'wp_video_shortcode_library', 'mediaelement' ), ); did_action( 'init' ) && $scripts->localize( 'mediaelement',