it-swarm-ko.tech

JQuery 또는 Prototype이 다른 플러그인에 의해 대기 중인지 테스트하십시오.

내 플러그인에서 jQuery 또는 Prototype (또는 둘 다)이 다른 플러그인에 의해로드되는지 테스트 해보고 싶습니다. 그래서, have wp_enqueue_script('jquery') 또는 wp_enqueue_script('prototype')이 이미 호출되었습니다.

plugin.prototype.jsplugin.jquery.js 파일에 내 플러그인에 적합한 코드가 있고 Prototype이 대기중인 경우 플러그인에서 plugin.prototype.js을 사용합니다. 이렇게하면 사이트에 필요한 것 이상로드하는 것을 피할 수 있습니다. 어느 쪽이든이 적재되지 않으면, 나는 더 작은 것의 위로 줄 것이다.

대기열에 무엇이 있는지 테스트하려면 어떻게해야합니까? 코드를 마지막으로 실행하려면 어떻게해야합니까?

5
artlung

스크립트가 대기열에 있는지 확인하려면 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');
11
Annika Backstrom

JQuery 또는 Prototype이로드 된 후 코드가 실행되도록하려면 $depswp_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');

물론, 플러그인은 사용자가 플러그인을 결정한 후에 해당 플러그인을 대기열에 추가 할 수 있으므로 마지막 순간에이 체크를 실행하십시오.

2
Jan Fabry