Не подключаются scripts в WordPress?

134
15 мая 2019, 09:10

Всем привет!

Много, кому задавал вопрос, но по ответам мне не помогло разобраться с проблемой. В общем, натягиваю кастомную тему на WordPress, подключаю рабочие скрипты (100% проверено), они не подключаются. Консоль их просто не видит, ошибок не выдает.

wp_head(); wp_footer(); оба подключены, где надо.

Вот код из файла functions.php:

<?php
function register_styles(){
    wp_register_style('pockets-bootstrap', get_template_directory_uri(). '/css/bootstrap.css');
    wp_enqueue_style('pockets-bootstrap');
    wp_register_style('pockets-mainstyle', get_template_directory_uri(). '/style.css');
    wp_enqueue_style('pockets-mainstyle');
}
add_action('wp_enqueue_scripts' , 'register_styles');

function load_scripts(){
    wp_deregister_script('jquery');
    wp_enqueue_script('jquery', get_template_directory_uri(). '/libs/jquery-3.3.1.min.js', true);

    wp_enqueue_script('common', get_template_directory_uri(). '/js/common.js', true);

}
add_action('wp_enqueue_scripts' , 'load_scripts');



register_nav_menu ('menu', 'Main menu');
?>

К слову, если в подключении файла вместо wp_enqueue_script(...) прописываю wp_enqueue_scripts(...) мне браузер выдает Fatal error:Out of memory.

Помогите, плиз!

Answer 1

Как то так лучше

if (!is_admin()) {
    function register_styles() {        
        wp_enqueue_style( 'pockets-bootstrap', get_template_directory_uri() . '/css/bootstrap.css' );
        wp_enqueue_style( 'main-css', get_template_directory_uri() . '/main.css', array('pockets-bootstrap') );
        wp_deregister_script( 'jquery' );//отключаем js в wp
        wp_register_script( 'jquery', '//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js', false, null, true );
        wp_enqueue_script( 'jquery' );//подключаем свой js
        wp_enqueue_script( 'commentjs', get_template_directory_uri() . '/js/common.js', array('jquery'));

    }
    add_action('wp_enqueue_scripts', 'register_styles');

}
register_nav_menus(array(
    'menu'    => 'Верхнее меню',   
    'Main menu' => 'Мое меню' 
Answer 2

У вас третий параметр 'wp_enqueue_script()' - true. А там должен быть массив зависимостей. Для jquery этот 3 параметр лучше убрать совсем. А для вашего скрипта 3 параметр должен выглядеть как 'array(' jquery')`.

Я бы так преобразовал ваш код:

<?php
function enqueue_styles() {
    wp_enqueue_style( 'pockets-bootstrap', get_template_directory_uri() . '/css/bootstrap.css' );
    wp_enqueue_style( 'pockets-mainstyle', get_template_directory_uri() . '/style.css' );
}
add_action( 'wp_enqueue_scripts', 'enqueue_styles' );
function load_scripts() {
    wp_deregister_script( 'jquery' );
    wp_enqueue_script( 'jquery', get_template_directory_uri() . '/libs/jquery-3.3.1.min.js' );

    wp_enqueue_script( 'common', get_template_directory_uri() . '/js/common.js', array( 'query') );
}
add_action( 'wp_enqueue_scripts', 'load_scripts' );
register_nav_menu( 'menu', 'Main menu' );
READ ALSO
Не работает Google+

Не работает Google+

в сервисе Поделиться от Яндекс: https://techyandex

128
Как заменить точку на запятую в input type=&ldquo;number&rdquo;?

Как заменить точку на запятую в input type=“number”?

Как можно заменить точку на запятую в input type="number", при этом сохранить ввод отрицательных чисел и диапазон, установленный в HTML?

144
.split is not a function

.split is not a function

Вроде гуглил и ошибка такая возникает когда передается не StringЗдесь вроде всё ок, но почему то ошибка

174