jQuery в Wordpress - Почему не работает?
Я использую этот шаблон в качестве основы: www.html5reset.org/
Он довольно хорош, но, кажется, у меня проблемы с jQuery.
В файле functions.php
написано:
// Подключаем jQuery
if ( !function_exists(core_mods) ) {
function core_mods() {
if ( !is_admin() ) {
wp_deregister_script('jquery');
wp_register_script('jquery', ("//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"), false);
wp_enqueue_script('jquery');
}
}
core_mods();
}
Мне кажется, всё в порядке - или нет?
Также есть готовый JS-файл. В нём написано:
// переназначаем jQuery на $
(function($){})(window.jQuery);
Я не совсем понимаю, что это делает, но выглядит нормально.
Чтобы проверить работу jQuery, я попробовал следующее - ничего не работает, jQuery не определена.
$(document).ready(function() {
alert("This is a test.");
});
jQuery(document).ready(function() {
alert("This is a test.");
});
$(document).ready(function($) {
alert("This is a test.");
});
Можете подсказать, что может быть не так? Спасибо!

просто чтобы помочь немного дальше... WordPress запускает jQuery в 'безопасном' режиме
что означает, что в WordPress вам нужно писать код так
jQuery(document).ready(function() {
а не так
$(document).ready(function() {
Но что сделал HTML5BP - добавил этот интересный кусок кода (вероятно, любезно, чтобы помочь разработчикам)
// переназначение jQuery на $<br/>
(function($){})(window.jQuery);
К вашему сведению, есть 3-й метод переключения обратно на символ $ для jQuery, который заключается в том, чтобы начать ваш код так:
jQuery(document).ready(function($) {
с этого момента в вашем коде вы можете использовать $ для обращения к jQuery

В wp_register_script()
есть опечатка - в URL отсутствует "http:". Исправьте это, и тогда хотя бы jQuery будет загружаться.
Кстати, многие считают не самой лучшей практикой перезаписывать jQuery по умолчанию в WordPress. Я даже удалил этот код из своей кастомной темы HTML5reset, которую использую.

Это URL относительно протокола, но, похоже, WordPress не может их обрабатывать.

Хорошо, спасибо! Я тоже убрал его, и теперь всё работает. У вас есть какие-то материалы, почему это считается плохой практикой?

Это требование "Theme review" для включения в репозиторий .org. Не изменяя jQuery, вы гарантируете, что WordPress и другие плагины могут безопасно предполагать, какую версию jQuery вы используете. Вы можете избежать этого, всегда следя за тем, чтобы все ваши темы были обновлены до использования стандартной версии jQuery для WP, но это довольно сложно поддерживать.
