JavaScript personalizado no funciona en WordPress

JavaScript personalizado no funciona en WordPress

Si estamos desarrollando una página web con WordPress, es más que probable que queramos usar nuestro propio JavaScript, sobre todo cuando elaboramos un tema desde cero o un plugin. Para ello debemos organizar nuestros archivos dentro del directorio que corresponda y luego añadirlos a la cola de la manera habitual.

Hasta aquí todo correcto. Pero si hemos trasladado nuestro JavaScript tal cual, lo más probable es que no funcione y al examinar la consola de control, nos encontremos con el  error Uncaught TypeError: $ is not a function

Esto se debe a que WordPress trabaja con jQuery en modo no-conflict para evitar posibles problemas de compatibilidad, lo que hace que cuando usamos el alias $ para llamar a la librería lance ese error y no se ejecute el código.

Para evitarlo, debemos meter nuestro script en un contenedor que nos servirá para especificar que vamos a usar jQuery y por tanto el atajo $ estará disponible de nuevo. En el siguiente ejemplo cargamos el script después de terminar de cargarse la página.

jQuery(document).ready(function($){
tu script se ejecutará después de la carga de la página
});

Si en lugar de ejecutar después de la carga, quisiéramos hacerlo antes, podríamos usar este otro contenedor.

(function($){
tu script se ejecutará antes de la carga de la página
})(jQuery);

Como desarrollador web freelance especializado en WordPress este fue uno de los primero «problemas» con los que me topé al empezar a programar temas desde cero cuando trataba de usar JavaScript personalizado. Lo entrecomillo porque no es un problema en sí sino una medida de compatibilidad, aunque inicialmente te pueda traer de cabeza si no lo sabes.


Referencias:

3 respuestas a «JavaScript personalizado no funciona en WordPress»

  1. Avatar de eze
    eze

    Mi JavaScript no se ejecuta , pero cuando hay una modificacion de pantalla(aumento el zoom) ahi funciona el JS. Me podrias ayudar? pago si precisas

    1. Avatar de Jesús Tovar

      Hola eze, ¿te muestra algún error la consola del navegador?

  2. Avatar de Hanzel
    Hanzel

    Muchas gracias mi sirvió muchísimo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *