web-dev-qa-db-ja.com

Jsエラーを引き起こすWordpressのオーディオプレイヤー、mediaelementplayerは機能ではありません

私は自分のスキンで内蔵のWordpressオーディオプレイヤーを使っています。デフォルトの音量を100に設定する必要があるので、これをfooter.phpに入れます。

<!--Change Wordpress Audio Player Default Volume-->
<script type="text/javascript">
jQuery(document).ready(function ($) {
    $("audio").mediaelementplayer({
        success: function (mediaElement, domObject) {
            mediaElement.setVolume(1.0);
        }
    });
});
</script>

問題は、wp-mediaelement.min.jsmediaelement-and-player.min.js JSファイルがショートコードのないページにロードされていないため、[audio]ショートコードのないページではエラーUncaught TypeError: $(...).mediaelementplayer is not a functionが発生することです。

私の選択肢は何ですか?デフォルトの音量を最大にすることは必須です。私のコードは間違って書かれていますか?

1
Nate M.

私は2つの可能な選択肢を考えることができます - 私は今どちらもテストすることができませんでしたが。

オプション1

理論的には、mediaelementplayerプラグインがjQuery名前空間に自分自身をロードしているかどうかを確認すると、よりクリーンです。

<!--Change Wordpress Audio Player Default Volume-->
<script type="text/javascript">
jQuery(document).ready(function ($) {
    if($.fn.mediaelementplayer) {
        $("audio").mediaelementplayer({
            success: function (mediaElement, domObject) {
                mediaElement.setVolume(1.0);
            }
        });
    }
});
</script>

オプション2

オプション1が機能しない場合は、これで問題ありません。現在のjQueryオブジェクトをテストして、それがmediaelementplayer呼び出しに応答するかどうかを確認します。

<!--Change Wordpress Audio Player Default Volume-->
<script type="text/javascript">
jQuery(document).ready(function ($) {
    var audio_widgets = $("audio");
    if(audio_widgets.mediaelementplayer) {
        audio_widgets.mediaelementplayer({
            success: function (mediaElement, domObject) {
                mediaElement.setVolume(1.0);
            }
        });
    }
});
</script>

これが役に立ちます。

3
MacPrawn