问题描述
我正在尝试更改 MediaElement.js 加载的一些设置。我似乎找不到一个过滤器或钩子来更改加载的设置。我能够自定义设置的唯一方法是打开 MediaElement.js 文件并更改其中的设置。
显然这不太理想,因为我被迫编辑一个核心的 WordPress 文件,这将在更新时被覆盖。如何使用过滤器更改设置,以便我的设置不会丢失?
我想设定
enableKeyboard: false
最佳解决思路
将 wp-includes/js/mediaelement/wp-mediaelement.js
复制到您的主题或插件中,并在那里进行修改。例如,我添加了一些设置来强制在 iOS& Android 设备,如下所示:
(function ($) {
// add mime-type aliases to MediaElement plugin support
mejs.plugins.silverlight[0].types.push('video/x-ms-wmv');
mejs.plugins.silverlight[0].types.push('audio/x-ms-wma');
$(function () {
var settings = {
// Put your custom MediaElement.js Player Options here...
alwaysShowControls: true,
// force iPad's native controls
iPadUseNativeControls: true,
// force iPhone's native controls
iPhoneUseNativeControls: true,
// force Android's native controls
AndroidUseNativeControls: true
};
if ( typeof _wpmejsSettings !== 'undefined' )
settings.pluginPath = _wpmejsSettings.pluginPath;
$('.wp-audio-shortcode, .wp-video-shortcode').mediaelementplayer( settings );
});
}(jQuery));
然后,您可以使用一个操作将原始文件排队并排列修改后的版本。如果您在主题中执行此操作,请将以下内容添加到 functions.php 文件中:
add_action( 'wp_enqueue_scripts', 'my_mediaelement_settings' );
function my_mediaelement_settings() {
wp_deregister_script( 'wp-mediaelement' );
wp_register_script( 'wp-mediaelement', get_stylesheet_directory_uri() . "/js/wp-mediaelement.js", array( 'mediaelement' ), false, true );
}
这假设您将修改后的 wp-mediaelement.js
文件放在主题中的 js
目录中。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。