На Wordpress не работаю скрипты

406
22 сентября 2017, 22:00

Я сверстал макет, после чего решил его натянуть на cms wordpress, подключил стили и скрипты в functions.php, подключил все через функции wp_head() и wp_footer().

Вот содержание файла functions.php:

<?php
function wptuts_scripts(){
    wp_enqueue_style('font-awesome', get_template_directory_uri() . '/fonts/font-awesome/css/font-awesome.min.css' );
    wp_enqueue_style('style-css', get_stylesheet_uri() );
    wp_enqueue_script('menu', get_template_directory_uri() . '/script/menu.js');
    wp_enqueue_script('slider', get_template_directory_uri() . '/script/slider.js');
    wp_enqueue_script('carousel', get_template_directory_uri() . '/script/carousel.js');
    wp_enqueue_script('top-button', get_template_directory_uri() . '/script/top-button.js');
}
add_action( 'wp_enqueue_scripts', 'wptuts_scripts' );
?>

Стили работают, но скрипты почему-то не хотят.

Вот ошибки которые выдает:

P.S: Без cms все скрипты работали корректно.

P.S.S: Я пытался нагуглить причину ошибок, но так и не смог ее найти.

Answer 1

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

Тут есть 2 варианта решения:

  1. исправьте скрипты так, чтобы их содержимое выполнялось только после события onLoad

  2. перенесите скрипты в wp_footer() (ниже приведен пример того, как это можно сделать)

    add_action( 'after_setup_theme', 'action_requeue_scripts' );
    function action_requeue_scripts () {
        remove_action( 'wp_head','wp_print_scripts' );
        remove_action( 'wp_head','wp_print_head_scripts', 9 );
        remove_action( 'wp_head','wp_enqueue_scripts', 1 );
        add_action( 'wp_footer','wp_print_scripts', 5 );
        add_action( 'wp_footer','wp_enqueue_scripts', 5 );
        add_action( 'wp_footer','wp_print_head_scripts', 5 );
    }
READ ALSO
Лучше использовать props или vuex?

Лучше использовать props или vuex?

В проекте подключён vue и vuex

353
Как дождаться выполнения нескольких Promise аналогично Promise.all

Как дождаться выполнения нескольких Promise аналогично Promise.all

Promiseall возвращает промис, который отклоняется при отклонении любого из переданных all обещаний

258
Как отменить событие scroll при достижении условия?

Как отменить событие scroll при достижении условия?

Допустим есть событие scroll $(window)scroll(function() { следящее за прокруткой

341
Ограничения на название ключей в JSON

Ограничения на название ключей в JSON

Разбираю файл JSON с помощью JSONparse(); Выясняется такая вещь, что ключ с дефисом не работает

295