jQuery en WordPress - ¿Por qué no funciona?
Estoy usando esto como mi plantilla inicial: www.html5reset.org/
Es bastante buena, pero creo que hay algo mal con jQuery ahí.
En el functions.php
dice:
// Cargar 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();
}
Esto me parece correcto - ¿está bien?
También hay un archivo JS predefinido. En este archivo dice:
// reasignar jQuery a $
(function($){})(window.jQuery);
No sé exactamente qué hace esto, pero también parece estar bien.
Para probar si jQuery funciona, intenté lo siguiente - nada funciona, jQuery no está definido.
$(document).ready(function() {
alert("Esto es una prueba.");
});
jQuery(document).ready(function() {
alert("Esto es una prueba.");
});
$(document).ready(function($) {
alert("Esto es una prueba.");
});
Entonces, ¿puedes decirme qué podría estar mal aquí? ¡Gracias!

solo para ayudar un poco más... WordPress ejecuta jQuery en modo 'seguro'
lo que significa que en WordPress necesitas escribir código así:
jQuery(document).ready(function() {
y no así:
$(document).ready(function() {
Pero lo que HTML5BP ha hecho es agregar este curioso fragmento de código (probablemente amablemente para ayudar a los desarrolladores)
// reasignar jQuery a $<br/>
(function($){})(window.jQuery);
Para tu información, hay un tercer método para volver a usar el símbolo $ para jQuery, que es comenzar tu código así:
jQuery(document).ready(function($) {
a partir de este punto en tu código, ahora puedes usar $ para referirte a jQuery

Hay un error tipográfico en wp_register_script()
donde falta "http:" en la URL. Arregla eso y al menos estarás cargando jQuery.
Como comentario aparte, muchos consideran que no es una buena práctica sobrescribir el jQuery predeterminado de WordPress y he eliminado el código al que haces referencia de mi tema personalizado HTML5reset que utilizo.

Esa es una URL relativa al protocolo, pero parece que WordPress no puede manejarlas.

¡Vale, gracias! También lo he eliminado y ahora funciona. ¿Tienes algún recurso sobre por qué se considera una mala práctica?

Es un requisito de la "Revisión de temas" para la inclusión en el repositorio .org. Al dejar jQuery como está, te aseguras de que WordPress y otros plugins puedan asumir con seguridad qué versión de jQuery estás usando. Probablemente podrías evitar esto asegurándote siempre de que todos tus temas estén actualizados para usar la versión estándar actual de jQuery en WordPress, pero eso es bastante difícil de mantener.
