Tenemos una vieja página en WordPress abandonada desde hace mucho tiempo y procedemos a actualizarla. Tras lo cual, comprobamos que el menú desplegable no funciona.
Esto es porque el tema no se ha actualizado. Es un viejo tema comprado en themeforest, llamado yokohama, que ya ha sido retirado, por lo que no es posible actualizarlo, así que intentaremos solucionar el error antes de tener que cambiar de tema.
Buscando la causa del error
Abrimos la consola del navegador y vemos que al pasar el cursor por el menú desplegable muestra el error:
Uncaught TypeError: $.browser is undefined
Es un error de Jquery: al actualizar WordPress, utiliza una versión más moderna de Jquery, pero al no estar actualizado el tema, éste utiliza funciones de una versión anterior, incompatibles con la última versión.
¿Cómo solucionarlo?
Debemos forzar WordPress para que utilice una versión anterior de Jquery.
¿Qué versión de Jquery usar?
En nuestro caso, la versión necesaria estaba en la propia carpeta del tema, bajo la carpeta js:
/wp-content/themes/yokohama/js/jquery.gomap-1.3.2.min.js
En caso de no tenerlo en nuestro tema, llamaremos la librería de jquery directamente desde la página de Google, indicando una versión concreta, que en nuestro caso sería la 1.3.2:
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
Forzar a WordPress a usar la versión anterior de Jquery
Debemos entrar a la pantalla de administración, apariencia, editor de temas y añadir al final del archivo functions.php lo siguiente:
wp_deregister_script('jquery');
wp_register_script('jquery', ("/wp-content/themes/yokohama/js/jquery.gomap-1.3.2.min.js"), false, '1.3.2');
Cambiando la ruta por la que corresponda en nuestro caso.
Advertencia
Usar este método como último recurso, ya que usar una versión anterior de Jquery podría provocar incompatibilidades por otro lado. Lo ideal sería siempre actualizar también el tema usado.
Fuente: stackexchange