WordPress enqueue noConflict () ошибка $ не функция?

Будучи разработчиком WP в течение 8 лет, эта проблема никогда не исчезла, и это сводит меня с ума. $ is not a function всегда появляться или jQuery is not a function, или же foundation is not a function … кто-нибудь, помогите мне раз и навсегда пресечь это в зародыше?

Мой enqueue.php:

// initialize packages ...
function source_enqueue() {

// init $wp_styles variable
// adds conditional wrapper around ie stylesheet
global $wp_styles;
if (!is_admin()) {

// jquery, bower, foundation, app js, style, app css

// init jquery ...
wp_enqueue_script( 'jquery' );
// init foundation
wp_enqueue_script( 'foundation', 'https://cdn.jsdelivr.net/g/[email protected](js/foundation.min.js+js/vendor/fastclick.js+js/vendor/jquery.cookie.js+js/vendor/jquery.js+js/vendor/modernizr.js+js/vendor/placeholder.js),[email protected]', array(), '2.1.3', true );
// init normalize
wp_enqueue_style( 'foundation', 'https://cdn.jsdelivr.net/g/[email protected](css/normalize.css),[email protected],[email protected]', array(), '', 'all' );
// init app.min.js
wp_enqueue_script( 'app', get_template_directory_uri() . '/assets/dist/app.min.js', array( 'jquery' ), '', true );
// init app.min.css
wp_enqueue_style( 'app', get_template_directory_uri() . '/assets/dist/app.min.css', array(), '', 'all' );
// init style.css
wp_enqueue_style( 'style', get_template_directory_uri() . '/style.css', array(), '', 'all' );

// init comment reply ...
if ( is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) {
wp_enqueue_script( 'comment-reply' );
}

}

}

// init source_enqueue() ...
// - - - - - - - - - - - - - - - - -
add_action( 'init', 'source_enqueue' , 999 );

Мой app.js:

$.noConflict();
$(document).foundation();

Я попытался обернуть его в разные функции безрезультатно:

jQuery(document).ready(function(){
jQuery(document).foundation();
});

или же:

$(document).ready(function(){
$(document).foundation();
});

Ничего не работает Ошибка все еще остается: $ is not a function,

Кто-нибудь поможет мне решить это раз и навсегда, прежде чем я сойду с ума и брошу свой хороший рабочий стол в дровосека?

0

Решение

Я нашел ответ после нескольких лет копания, испытаний и испытаний. Я решил сделать последний снимок, и это сработало. Ошибок нет, а консоль регистрирует основание. Для всех тех, кто боролся, это код, который позволит вашему базовому скрипту enqueue’d работать правильно. Я даже предоставлю CDN.

Требуется 2 дня, прежде чем я смогу принять собственный ответ.

enqueue.php / functions.php, однако вам нужны ваши функции:

// enqueue.php or functions.php
wp_enqueue_script( 'foundation', 'https://cdn.jsdelivr.net/g/[email protected](js/foundation.min.js+js/vendor/jquery.js+js/vendor/modernizr.js),[email protected]', array(), '', true );

app.js:

// app.js
$ = jQuery.noConflict( true );

(function( $ ) {
$(document).foundation();
// other code here ...
})(jQuery);
2

Другие решения

Почему вы ставите в очередь «JQuery». WordPress всегда ставит jQuery в очередь.

Удалить wp_enqueue_script( 'jquery' );

И в вашем файле JS

jQuery(document).ready(function($){
//then $ works
// your code
});
0

Просто добавьте библиотеку jQuery.js или jQuery-min и попробуйте это:

     $k = jQuery.noConflict();
$k(document).ready(function(){
//then $ works
// your code
});
-1

«включить» стандартный URL-адрес JQuery в верхней части страницы …

-2
По вопросам рекламы [email protected]