Как узнать, отключен ли jQuery Migrate в плагине на WordPress?

Привет! <br/> <br/> У меня есть плагин, который работает с встроенной библиотекой jQuery WordPress. Для его корректной работы также требуется плагин jQuery Migrate, который по умолчанию включен в ядре. Однако, если jQuery Migrate отключен в теме сайта, плагин перестает функционировать. У меня возник вопрос: как можно проверить, отключен ли jQuery Migrate в используемой теме? Можно ли это сделать с помощью хуков или JavaScript, чтобы затем вывести сообщение о проблеме в консоли или на странице? <br/> Спасибо за любые советы!
  • 27 января 2025 г. 20:54
Ответы на вопрос 2
Чтобы проверить, отключен ли jQuery Migrate в вашей WordPress-теме, вы можете воспользоваться как PHP, так и JavaScript. Вот несколько способов:

### 1. Проверка через PHP

Вы можете использовать хук `wp_enqueue_scripts` для проверки того, включен ли jQuery Migrate. Обычно jQuery Migrate включается с помощью WP с помощью функции `wp_enqueue_script()`. Вы можете проверить, зарегистрирован ли скрипт `jquery-migrate` и был ли он задетектирован:

```php
function check_jquery_migrate() {
    // Проверьте, добавлен ли jQuery Migrate
    if ( ! wp_script_is( 'jquery-migrate', 'enqueued' ) ) {
        // Если нет, вы можете добавить сообщение в консоль
        echo '<script>console.warn("jQuery Migrate отключен. Плагин может не работать корректно.");</script>';
    }
}
add_action( 'wp_enqueue_scripts', 'check_jquery_migrate' );
```

Этот код выведет предупреждение в консоли браузера, если jQuery Migrate не был включен.

### 2. Проверка через JavaScript

Если вы хотите сделать это с помощью JavaScript, вы можете добавить на страницу ваш собственный скрипт, который проверит наличие объектов jQuery Migrate:

```php
function check_jquery_migrate_js() {
    ?>
    <script>
        jQuery(document).ready(function($) {
            if (typeof jQuery.migrateWarnings !== 'undefined' && jQuery.migrateWarnings.length > 0) {
                console.warn("jQuery Migrate отключен или в нем есть предупреждения. Плагин может не работать корректно.");
            } else {
                console.log("jQuery Migrate включен.");
            }
        });
    </script>
    <?php
}
add_action( 'wp_footer', 'check_jquery_migrate_js' );
```

### Подводя итог

Оба примера позволят вам проверить, работает ли jQuery Migrate. В первом случае предупреждение будет выводиться через PHP (на этапе сервера), что может быть полезно для отладки, во втором - через JavaScript на стороне клиента, что также может быть информативно для конечного пользователя. Выберите подходящий метод в зависимости от ваших потребностей.
Да, на ванильном JS это самое лучшее решение. НО плагин уже написан и там много кода на jQuery есть. Спасибо за ссылку. Но, кажется я решение нашел, просто добавил в зависимости подключений скриптов элемент jquery-migrate 
wp_enqueue_script( ''/includes/assets/js/script.min.js', array('jquery', 'jquery-migrate', 'wp-hooks'), 1.9, true);

и теперь если эта библиотека где-то в теме будет отключена то плагин ее снова подключит.
Думаю это пока что самое быстрое решение)
Похожие вопросы