проверьте, нет ли jquery или prototype в очереди другого плагина?

<p>в моем плагине я хочу проверить, будет ли jquery или prototype (или оба) загружаться другим плагином. итак, уже <a href="http://codex.wordpress.org/function\_reference/wp\_enqueue\_script"><code>wp\_enqueue\_script('jquery')</code></a> или <code>wp\_enqueue\_script('prototype')</code> уже была вызвана.</p><p>у меня есть код, соответствующий моему плагину, в файлах <code>plugin.prototype.js</code> и <code>plugin.jquery.js</code>, и если prototype поставлен в очередь, мой плагин будет использовать <code>plugin.prototype.js</code>. таким образом, я избегаю загрузки на сайт больше, чем необходимо. если ни один из них не загружен, я буду стоять в очереди, в зависимости от того, что меньше.</p><p>как я могу проверить, что было поставлено в очередь? как мне убедиться, что мой код работает в последний раз?</p>

<p>используйте <code>wp\_script\_is()</code>, чтобы проверить, находится ли скрипт в очереди.</p><pre><code>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'); </code></pre>

<p>чтобы убедиться, что ваш код выполняется после загрузки jquery или prototype, используйте параметр <code>$deps для wp_enqueue_script и передайте array('jquery') или array('prototype'). если вы хотите узнать, находится ли скрипт в очереди, вы можете использовать <a href="http://core.trac.wordpress.org/browser/branches/3.0/wp-includes/class.wp-dependencies.php#l184">метод query() wp_dependencies ( <a href="http://core.trac.wordpress.org/browser/branches/3.0/wp-includes/class.wp-scripts.php#l19">который это суперкласс wp_scripts ). так что-то вроде этого должно работать:global $wp\_scripts; $jqueryisloaded = (bool) $wp\_scripts->query('jquery'); $prototypeisloaded = (bool) $wp\_scripts->query('prototype'); </code></pre><p>конечно, плагины могут ставить их в очередь после того, как вы выбрали один, поэтому постарайтесь убедиться, что вы выполняете эту проверку в самый последний момент.</p>