@mvr1976
Учу html, css, js

Почему не работают скрипты из внешнего файла?

Добрый вечер!
Переношу верстку на вордпресс (в первый раз) и происходит что-то странное с js - скриптами. В верстке все работало, а при переносе в шаблон вордпресс - один скрипт работает, другой нет, при том, что они абсолютно одинаковые, управляют модальными окнами. Плагинов там никаких нет, ошибка подключения исключается, т.к. кое-что все же работает.
Решается проблема помещением js-скриптов прямо на страницу шаблона php, но не думаю, что так задумано) Кто-нибудь сталкивался с подобным?
В консоли - ошибка 404 - не загружаются файлы css. Вот код подключения стилей и скриптов, повторюсь, часть скриптов и бОльшая стилей работает.
Что проверить, куда посмотреть?
function load_style_fg(){
	
	wp_enqueue_style('vendor_style', get_template_directory_uri().'/assets/css/foundation.css');
	wp_enqueue_style('custom_style', get_template_directory_uri().'/assets/css/app.css');
}
add_action('wp_enqueue_scripts', 'load_style_fg');

function load_script_fg(){
	wp_enqueue_script('my_vendor_js', get_template_directory_uri().'/assets/js/foundation.js');
	wp_enqueue_script('my_custom_js', get_template_directory_uri().'/assets/js/app.js');
	
}
add_action('wp_enqueue_scripts', 'load_script_fg');
  • Вопрос задан
  • 2664 просмотра
Пригласить эксперта
Ответы на вопрос 2
trampick
@trampick
Веб-разработчик
Скину скрипт, который я обычно пишу для подключения
add_action('wp_print_styles', 'add_my_stylesheet');

function add_my_stylesheet() {
    $path = get_bloginfo('template_directory') . "/"; //Получаю url к папке с темой
    wp_register_style('themeStyle', $path . 'style.css');//Регистрирую таблицу
    wp_enqueue_style('themeStyle');//включаю
}

add_action('wp_enqueue_scripts', 'add_my_scripts');

function add_my_scripts() {
    $path = get_bloginfo('template_directory') . "/";//Получаю url к папке с темой
    if (!is_admin()) {//если не в админке
        wp_deregister_script('jquery');//Убираем вывод jquery, rкоторый идет с WP
        wp_register_script('jquery', ($path . "js/jquery-1.11.3.min.js"), false, '1.11.3');//Регистрируем свой jquery
        wp_enqueue_script('jquery');//Включаем его
    }
    wp_register_script('commonJS', ($path . "js/common.js"), array('jquery'));//Регистрируем свой скрипт, и указываем что для него необходим скрипт jquery
    wp_enqueue_script('commonJS');//Включаем скрипт
    wp_localize_script('commonJS', 'myajax', array(//Это способ передачи php значение в js.Т.е. перед выводом commonJs создадутся js переменные.
        'url' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('myajax-nonce'),
            )
    );
}

У тебя не хватает wp_register_style и wp_enqueue_script перед включением таблицы и скриптов. Скорее всего дело в этом. Следующий момент может быть что нужно стандартный jquery заменить на свой.
Ответ написан
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
В консоли - ошибка 404 - не загружаются файлы css.

Ошибка 404 говорит о том, что файл по указанному пути не найден. Смотрите путь, который выводится в html и сравнивайте с тем, что есть на самом деле.

Если у скриптов есть зависимость от jQuery, то стоит это указать:
wp_enqueue_script('my_vendor_js', get_template_directory_uri().'/assets/js/foundation.js', array('jquery'));
wp_enqueue_script('my_custom_js', get_template_directory_uri().'/assets/js/app.js', array('jquery', 'my_vendor_js'));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы