dewaldreynecke
  • 0
Новичок

Проверить, не ставится ли jQuery или Prototype в очередь другим плагином?

  • 0

В моем плагине я хочу проверить, будут ли загружены jQuery или Prototype (или оба) другим плагином. Итак, звонили wp_enqueue_script('jquery') или wp_enqueue_script('prototype') уже звонили.

У меня есть код, соответствующий моему плагину в файлах, plugin.prototype.js и plugin.jquery.js если Prototype стоит в очереди, мой плагин будет использовать файлы plugin.prototype.js . Таким образом, я не загружаю на сайт больше, чем необходимо. Если ни один из них не загрузился, я встану в очередь в зависимости от того, что меньше.

Как проверить, что поставлено в очередь? Как убедиться, что мой код работает последним?

Share
  1. Используйте 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');
    
    • 0
  2. Чтобы убедиться, что ваш код запускается после загрузки jQuery или Prototype, используйте $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');
    

    Конечно, плагины могут поставить их в очередь после того, как вы выбрали один из них, поэтому постарайтесь выполнить эту проверку в самый последний момент.

    • 0

Оставить ответ

You must login to add an answer.