jQuery în WordPress - De ce nu funcționează?
Folosesc acest model de bază: www.html5reset.org/
Este destul de bun, dar cred că ceva nu merge bine cu jQuery în el.
În functions.php
scrie:
// Încarcă 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();
}
Pare în regulă - este corect?
Există și un fișier JS predefinit. În acest fișier scrie:
// remap jQuery la $
(function($){})(window.jQuery);
Nu știu exact ce face asta, dar pare să fie în regulă.
Pentru a testa dacă jQuery funcționează, am încercat următoarele - niciunul nu funcționează, jQuery nu este definit.
$(document).ready(function() {
alert("Acesta este un test.");
});
jQuery(document).ready(function() {
alert("Acesta este un test.");
});
$(document).ready(function($) {
alert("Acesta este un test.");
});
Deci, poți să-mi spui ce ar putea fi în neregulă cu asta? Mulțumesc!

doar ca să ajut puțin mai departe... WordPress rulează jQuery în modul 'sigur'
ceea ce înseamnă că în WordPress trebuie să scrii cod astfel:
jQuery(document).ready(function() {
și nu așa:
$(document).ready(function() {
Dar ceea ce a făcut HTML5BP este să adauge acest fragment de cod interesant (probabil din bunătate pentru a ajuta dezvoltatorii)
// remapează jQuery la $<br/>
(function($){})(window.jQuery);
Pentru informație, există o a 3-a metodă de a reveni la simbolul $ pentru jQuery, și anume să începi codul astfel:
jQuery(document).ready(function($) {
de acum înainte, în codul tău poți folosi $ pentru a te referi la jQuery

Există o greșeală de tipar în wp_register_script()
unde lipsește "http:" în URL. Repară asta și vei reuși măcar să încarci jQuery.
Ca o observație, mulți consideră că nu este o practică bună să suprascrii jQuery-ul implicit din WordPress și am eliminat codul la care te referi din tema mea personalizată HTML5reset pe care o folosesc.

Aceasta este o adresă URL relativă la protocol, dar se pare că WordPress nu le poate gestiona.

Bine, mulțumesc! Am eliminat-o și acum funcționează. Ai vreo resursă care să explice de ce este considerată o practică proastă?

Este o cerință a "Recenziei temei" pentru includerea în depozitul .org. Prin a lăsa jQuery neatins, te asiguri că WordPress și alte plugin-uri pot presupune în siguranță versiunea de jQuery pe care o folosești. Poți evita acest lucru probabil prin a te asigura mereu că toate temele tale sunt actualizate pentru a folosi versiunea standard actuală de jQuery din WP, dar acest lucru este destul de greu de întreținut.
