問題描述
我正在嘗試更改 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。