jQueryまたはプロトタイプが別のプラグインによってキューに巻き込まれているかどうかを確認するためにテストしますか?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/206

質問

私のプラグインでは、jQueryまたはプロトタイプ(またはその両方)が別のプラグインによってロードされるかどうかをテストしたいと思います。だから、持っている wp_enqueue_script('jquery') また wp_enqueue_script('prototype') すでに呼ばれています。

ファイルのプラグインに適したコードがあります plugin.prototype.jsplugin.jquery.js そして、プロトタイプがキューになった場合、私のプラグインは使用します plugin.prototype.js. 。このようにして、私はサイトに必要以上にロードすることを避けます。どちらもロードされていない場合は、どちらかが小さくなります。

どうすればテストして、何がキューアップされたかを確認できますか?コードが最後に実行されることを確認するにはどうすればよいですか?

役に立ちましたか?

解決

使用する wp_script_is() スクリプトがキューにあるかどうかを確認します。

function add_my_scripts() {
    $doing_jquery = wp_script_is('jquery', 'queue');
    $doing_prototype = wp_script_is('prototype', 'queue');

    var_dump($doing_jquery, $doing_prototype);
}
add_action('wp_print_scripts', 'add_my_scripts');

他のヒント

jqueryまたはプロトタイプがロードされた後にコードが実行されることを確認するには、 $deps パラメーターに wp_enqueue_script, 、そしてどちらかを渡します array('jquery') また array('prototype'). 。スクリプトがキューにあるかどうかを知りたい場合は、使用できます query() の方法 WP_Dependencies (これはスーパークラスです WP_Scripts)。したがって、このようなことはうまくいくはずです:

global $wp_scripts;
$jQueryIsLoaded = (bool) $wp_scripts->query('jquery');
$prototypeIsLoaded = (bool) $wp_scripts->query('prototype');

もちろん、プラグインはそれを決定した後にそれらを排除する可能性があるため、最後の瞬間にこのチェックを実行するようにしてください。

ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top