wp_enqueue_script не загружает JS в плагине

Вопрос или проблема

Я написал следующий код в отдельном плагине, но он не работает
Пожалуйста, подскажите, как изменить код, чтобы файл JS загружался.

<?php
/*
Plugin Name: Copy post
*/
class CopyPostApi{
    public  function __construct(){
        // Add assets
        add_action( 'wp_enqueue_scripts', array($this, 'load_assets'));
    }
    public function load_assets()
    {
        wp_enqueue_script(
            'main_js',
            plugin_dir_url(__FILE__) . 'assets/main.js',
            array(),
            1,
            true
        );
    } 
}
new CopyPostApi;

Примечание: Я искал и использовал предложенные коды, но это не сработало

Ваш код кажется правильным, поэтому я думаю, что проблема, скорее всего, в вашей теме. Вы также разрабатываете свою собственную тему? Функция wp_head вызывается в тех файлах, которые были подключены к wp_enqueue_scripts. Она должна быть в теме между тегами head, как вы видите здесь:
https://developer.wordpress.org/reference/functions/wp_head/#comment-900

У меня была такая же проблема… дело в том, что вы используете wp_enqueue_scripts, но если вы хотите загрузить его в панели администрирования, вам нужно использовать admin_enqueue_scripts вместо этого…

Функция должна вызываться с использованием действия хука wp_enqueue_scripts, если вы хотите вызвать ее на фронтэнде сайта, как в приведенных выше примерах. Чтобы вызвать ее на экранах администрирования, используйте действие хука admin_enqueue_scripts.

1) Проверьте расположение файла JavaScript, он должен находиться в правильной директории.

  1. Функция вызывается слишком рано: Функция wp_enqueue_script должна вызываться после того, как сработает хук wp_enqueue_scripts. Убедитесь, что вы вызываете эту функцию в правильном хуке.

Ответ или решение

Ваша проблема связана с тем, что JavaScript файл не загружается в плагине при использовании функции wp_enqueue_script. Давайте разберем возможные причины и предложим решения.

Теория

В WordPress существует несколько хуков, которые можно использовать для загрузки скриптов: wp_enqueue_scripts для фронтенда и admin_enqueue_scripts для административной панели. Если скрипт предназначен для работы на фронтальной части сайта, необходимо использовать wp_enqueue_scripts. Для загрузки скриптов в админпанели, нужно использовать admin_enqueue_scripts. Ошибка в выборе правильного хука может привести к тому, что скрипт не будет загружаться в нужной части сайта.

Также важно убедиться, что скрипт подключается после инициализации движка WordPress, а не раньше. Важно, чтобы все зависимости и необходимые функции были доступны на момент подключения скрипта. Обычно для подключения скриптов и стилей используется стандартная функция wp_enqueue_script, вызываемая в контексте вышеуказанных хуков.

Пример

Рассмотрим ваш код:

<?php
/*
Plugin Name: Copy post
*/
class CopyPostApi {
    public function __construct() {
        add_action('wp_enqueue_scripts', array($this, 'load_assets'));
    }

    public function load_assets() {
        wp_enqueue_script(
            'main_js',
            plugin_dir_url(__FILE__) . 'assets/main.js',
            array(),
            1,
            true
        );
    } 
}
new CopyPostApi;

В данном примере для загрузки скрипта используется wp_enqueue_scripts, что предполагает его использование на фронтенде сайта.

Применение

  1. Проверьте правильность хука: Убедитесь, что "wp_enqueue_scripts" это подходящий хук для задачи. Если ваш скрипт должен загружаться в административной панели WordPress, вам следует использовать admin_enqueue_scripts.

  2. Убедитесь в правильности пути: Проверьте, что ваш JavaScript файл находится в правильной директории assets и имеет правильное имя main.js. Вы можете сделать это, открыв сам файл по указанному адресу в браузере.

  3. Проверьте тему: Убедитесь, что ваша тема вызывает wp_head() в разделе <head> вашего HTML, так как именно этой функцией WordPress добавляет все стили и скрипты, добавленные через wp_enqueue_scripts.

  4. Проверка вызова функции: Убедитесь, что load_assets вызывается после того, как WordPress инициализирует все необходимые ресурсы. Это важно для совместимости с другими плагинами и темами.

Если все вышеперечисленное выполнено верно, то после применения указанных рекомендаций ваш скрипт должен загружаться корректно.

Оцените материал
Добавить комментарий

Капча загружается...