jQueryまたはプロトタイプが別のプラグインによってキューに巻き込まれているかどうかを確認するためにテストしますか?
-
16-10-2019 - |
質問
私のプラグインでは、jQueryまたはプロトタイプ(またはその両方)が別のプラグインによってロードされるかどうかをテストしたいと思います。だから、持っている wp_enqueue_script('jquery')
また wp_enqueue_script('prototype')
すでに呼ばれています。
ファイルのプラグインに適したコードがあります plugin.prototype.js
と plugin.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');
もちろん、プラグインはそれを決定した後にそれらを排除する可能性があるため、最後の瞬間にこのチェックを実行するようにしてください。