Soporte » WordPress Avanzado » Menú que no desaparece cuando uso anchor links en la versión responsive

  • Resuelto zelarra

    (@zelarra)



    Hola, tengo un problema con el menú de esa web en la versión responsive. He creado anchor links para ir a distintas partes de la home a través del menú. Sin embargo, una vez que haces clic, el menú no se cierra. He buscado en este foro y en GitHub alguna solución, pero las que proponen no me han funcionado.

    He probado a poner un tema cualquiera, y el problema es de WordPress.

    ¿Alguien sabe cómo puedo solucionarlo?

    ¡Gracias!

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 12 respuestas - 1 de 12 (de 12 total)
  • Hola.

    ¿No te parece que decir que el problema es de WordPress es algo muy genérico?. El problema debe ser o bien del tema o de algún plugin que estás usando porque el fallo de tu web no es habitual.

    Primeramente desactiva los plugins que tengas para optimizar el código y prueba a ver que pasa, el autoptimize puede producir fallos al minimizar javascript.

    Si desactivando el autoptimize no se soluciona prueba lo habitual, si estás usando un tema hijo cambia al principal, desactiva los plugins, cambia el tema a twentyseventeen (recuerda cambiar el menú para probar), etc. Seguro que ahí encuentras el fallo.

    Hola, José.

    En primer lugar, disculpas por ser tan categórico. Cambié de tema para descartar que fuera problema del que estoy usando. Y de ahí mi error.

    En segundo lugar, he hecho lo que me indicas:

    – Primero, con la web tal y como debería estar finalizada, he desactivado Autoptimize, y sigue dando el mismo error.
    – Después, he cambiado del tema hijo al padre, desactivado todos los plugins y he cambiado al tema twentyseventeen. Sigue con el mismo problema.

    Lo que no entiendo es por qué dices que cambie el menú para probar. Solo me da fallo al usar en el menú URLs como #metodo y #contenido.

    Mil gracias. Un saludo.

    • Esta respuesta fue modificada hace 1 mes, 2 semanas por  zelarra.

    Hola.

    Te comento lo del menú para que mires por si acaso porque hay temas que cambian el menú para la versión móvil, de forma que te permite quitar secciones o reordenarlas de otra forma para adaptarse, por ejemplo las tiendas que te ponen al pie de la pantalla el menú de tienda con el carrito y te lo quitan del superior.

    Tiene toda la pinta de ser algún JavaScript que no funciona bien, por eso lo del autoptimize. De hecho si miras en la consola te aparece un mensaje de advertencia de un JavaScript, justo el que tiene las funciones del botón de menú ([Violation] Forced reflow while executing JavaScript took). Yo la única vez que vi algo así reinstalé el tema nuevamente y se solucionó.

    Lamentablemente no te puedo ayudar más en eso, a ver si algún compañero te pude dar mejores indicaciones

    Hola, José.

    Ya he visto el error que tú me dices. He reinstalado el tema, y, aun teniendo todos los plugins desactivados, siguen sin cerrar el menú. Acabo de descubrir en otra web que me pasa lo mismo (y yo que sepa no pasaba antes).

    Esperaré a ver si contesta alguien más. De todas formas, voy a seguir buscando.

    Muchas gracias. Un saludo.

    No se si será por eso pero en Firefox se queja de “Un iframe que tiene tanto allow-scripts como allow-same-origin en su atributo sandbox puede eliminar su condición de confinamiento.”

    ¿Está la web metida en un iframe?

    Hola, Juan Carlos. Pues ni idea. ¿Cómo puedo averiguarlo?

    ¡Gracias por la respuesta!

    Pues abría que mirar cómo está la instalación hecha, la carpeta en la que están los ficheros, si tiene alguna redirección o algo raro en el htaccess.

    Como decías que te pasaba en varias webs ¿están todas en el mismo proveedor de hosting? ¿Te lo has instalado en local a ver si te pasa lo mismo? ¿Puedes probar en otro proveedor de hosting?

    Por descartar cosas, a lo mejor no es el origen del problema, pero desde luego es raro

    A ver.

    En el htaccess tengo puesto lo de todas las webs. Tengo otra web con anchor links y me funciona con esa configuración. Es esta:

    RewriteCond %{HTTP:X-Forwarded-Proto} !https 
    RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$ 
    RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ 
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ 
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    RewriteEngine On
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress
    
    # Bloqueamos acceso al directorio includes
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]
    </IfModule>
    
    # Bloqueamos acceso a WP-CONFIG
    <Files wp-config.php>
    	Order Allow,Deny
    	Deny from all
    </Files>
    
    # Protegemos nuestros HTACCESS
    
    <Files ~ “^.*\.([Hh][Tt][Aa])”>
    	Order allow,deny
    	Deny from all
    	Satisfy all
    </Files>
    
    # Cerramos acceso a directorios de themes y plugins
    
    RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
    RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
    RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
    RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
    RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
    RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]
    
    # No permitir ver los directorios
    
    Options -Indexes
    
    # Habilitar la compresión
    
    <FilesMatch "\.(css|js|ico|pdf|jpg|jpeg|png|gif|php|woff)$">
    SetOutputFilter DEFLATE
    </FilesMatch>
    
    # Caché
    
    <FilesMatch "\.(css|js|ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$">
    Header set Cache-Control "public"
    Header set Expires "Thu, 15 Apr 2020 20:00:00 GMT"
    </FilesMatch>
    
    ## Expires header caching
    
    ExpiresActive On
    ExpiresByType image/jpg "access 1 year"
    ExpiresByType image/jpeg "access 1 year"
    ExpiresByType image/gif "access 1 year"
    ExpiresByType image/png "access 1 year"
    ExpiresByType text/css "access 1 month"
    ExpiresByType application/pdf "access 1 month"
    ExpiresByType application/javascript "access 1 month"
    ExpiresByType application/x-javascript "access 1 month"
    ExpiresByType application/x-shockwave-flash "access 1 month"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresDefault "access 2 days"
    
    ## Impedir aceso a los archivos de instalación
    
    <Files ~ "^(install|setup-config).php">
    Deny from all
    </Files>
    
    RewriteRule (?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?) - [R=404,NC,L]
    RewriteRule \.(?:psd|log|cmd|exe|bat|c?sh)$ - [NC,F]

    Luego, he probado duplicar la web en otro hosting distinto, y me sigue haciendo lo mismo. También a reinstalar WordPress, y sigue con el mismo fallo. Asimismo he hecho con otros temas distintos, e igual.

    Lo que puedo decir con respecto a la instalacion es que está en una carpeta dentro del dominio principal, y la web en que me funciona los anchor links no. ¿Puede ser eso?

    Muchas gracias de todas formas.

    Sigo haciendo pruebas. A ver si esto va a ser más sencillo de lo que creo.

    He hecho una copia de la web en Pilvia, y he borrado todo el código que yo he ido añadiendo. Bien, pues sigue apareciendo el menú a partir de la segunda vez que haces clic en cualquiera de los enlaces del menú.

    Como he probado en distintos hostings (Ibertrix, Raiola), en uno gratuito (Pilvia); he probado varios temas (Monochrome Pro, Twenty-seventeen); he borrado todos los plugins, el código personalizado… Y aún con esas, he decidio hacer una instalación limpia y probar. Resultado: igual. Así que lo mismo estoy haciendo algo mal.

    Para añadir los anchor links lo hago de la siguiente manera:

    <span id="parte1"></span>Proin orci elit, ultrices at enim nec, posuere interdum lorem. Nam quis sem lectus. Morbi neque felis, lacinia vitae iaculis at, elementum auctor ante. Sed sed turpis ac ipsum pulvinar sagittis ac quis lacus. Integer venenatis, diam ac varius varius, diam risus laoreet nulla, vitae dictum dui tellus nec mauris. Nunc at purus pretium, vehicula sem at, iaculis quam. Praesent sit amet semper tellus, eu ullamcorper dui.

    Luego, en el menú, añado un enlace personalizado, y pongo, para seguir con el ejemplo anterior, #parte1. Me da igual que sea la URL completa o no, ya que ambas no me funcionaban.

    ¿Está bien cómo lo estoy haciendo?

    Gracias, un saludo.

    ¿Has probado a poner como elemento para el id un atributo “a” en vez de “span”? O sea,
    <a id="parte1"></a>

    También he leído por ahí que hace un año Genesis tuvo incidencias porque por una actualización en los navegadores Chrome y Firefox dejaron de funcionar la opciones de scroll en sus plantillas. ¿Tienes instalada la última versión del tema, de Genesis y de JQuery?

    Hola, Juan Carlos.

    He probado a utilizar el atributo a. No funciona.
    Tengo instalado la última versión de Genesis. Del tema no lo sé, porque no encuentro la última versión que hay. Y de JQuery he instalado un plugin que ejecuta la última versión. Nada de esto lo arregla.

    Así que doy la guerra por perdida. Voy a cambiar a otro tema que ya he probado que, en su versión demo, funciona. Iré con pies de plomo ante cada paso que de, para no perder más tiempo.

    Mil gracias a todos los que se han preocupado por ayudarme.

    Un abrazo.

Viendo 12 respuestas - 1 de 12 (de 12 total)
  • Debes estar registrado para responder a este tema.