Не найден файл jquery в WordPress - PullRequest
1 голос
/ 13 марта 2019

Я связал файл jquery в functions.php, но не работает Вот код в functions.php

add_action("wp_footer","js_scripts");
function js_scripts()
{
    wp_enqueue_script("jquery",get_template_directory_uri()."/jquery.js");
    wp_enqueue_script("f",get_template_directory_uri()."/f.js");
}

Вот код в f.js

$(document).ready(function(){
    alert("ready good");
});

Ответы [ 4 ]

2 голосов
/ 13 марта 2019

Вы должны убедиться, что вы загрузили файл f.js в /wp-content/themes/youractivetheme/f.js

А также не нужно загружать jquery.js, поскольку он уже наследуется и включается из wp-include.

Вы можете использовать этот метод вместо get_template_directory_uri ()

get_stylesheet_directory_uri ();

Или

function wpdocs_scripts_method() {
wp_enqueue_script( 'custom-script', get_stylesheet_directory_uri() . '/f.js', array( 'jquery' ) ); } 
add_action( 'wp_enqueue_scripts', 'wpdocs_scripts_method', 100 );

вы добавляете вот так и определяете высоту приоритета, чтобы она наконец загрузилась.

0 голосов
/ 13 марта 2019

Jquery уже есть в вашем WordPress, вы просто помещаете его в свой файл.Как вы можете использовать его, как указано ниже:

function theme_enqueue_scripts() {
wp_enqueue_script( 'f-script', get_stylesheet_directory_uri() . '/f.js', array( 'jquery' ) ); } 
add_action( 'wp_enqueue_scripts', 'theme_enqueue_scripts', 10 );

Таким образом, файл f.js ставит jquery в очередь перед загрузкой, поскольку jquery задан как зависимость этого дескриптора.

Надеюсь, это сработает для вас.

0 голосов
/ 13 марта 2019

Есть несколько проблем с вашим кодом ...

Прежде всего , вы не должны ставить в очередь скрипты, используя wp_footer hook.Это поздно.

wp_footer - это ловушка действия, которая запускается во время вызова функции wp_footer().А печать скриптов нижнего колонтитула - это действие, назначенное для этого хукаЭто означает, что для печати любых сценариев в них вы должны поставить их в очередь, прежде чем они будут напечатаны.

Хорошей практикой является постановка сценариев в очередь с использованием ловушки wp_enqueue_scripts.И если вы хотите поставить его в очередь для нижнего колонтитула, то есть параметр , сообщающий WP, должен ли данный скрипт быть помещен в верхний или нижний колонтитул.Таким образом, после его изменения ваш код будет выглядеть следующим образом:

function js_scripts() {
    wp_enqueue_script( 'jquery', get_template_directory_uri() . '/jquery.js', array(), null, true );
    wp_enqueue_script( 'f', get_template_directory_uri() . '/f.js', array(), null, true );
}
add_action( 'wp_enqueue_scripts', 'js_scripts' );

Другая вещь заключается в том, что WordPress уже имеет свой собственный файл jQuery, и вы всегда должны использовать его.Все темы и плагины предполагают, что это версия jQuery, которая используется на сайте, поэтому постановка в очередь вашего собственного файла jQuery может вызвать много конфликтов.И вам не нужно ставить его в очередь - все, что вам нужно сделать, это использовать механизм зависимости скрипта:

function js_scripts() {
    wp_enqueue_script( 'f', get_template_directory_uri() . '/f.js', array('jquery'), null, true );
}
add_action( 'wp_enqueue_scripts', 'js_scripts' );

И, наконец, ... WordPress использует jQuery в режиме без конфликтов,Это означает, что вы не можете использовать $ в своих скриптах, потому что такая глобальная переменная не определена.Вы должны использовать вместо JQuery.Вы можете сделать свою жизнь проще, обернув весь свой код функцией.Итак, ваш JS-файл должен выглядеть так:

jQuery(function ($) {
    // you can use $ inside this function

    $(document).ready(function(){
        alert("ready good");
    });
});
0 голосов
/ 13 марта 2019

Во-первых, убедитесь, что WordPress загружен в ваш шаблон.

В вашем головном файле убедитесь, что он загружен не в файл функций

<?php wp_enqueue_script("jquery"); ?>

Далее, WordPress должен использоватьРежим noConflict или используйте базовый jQuery вызов вместо $.

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...