Error en login de WordPress (wp-login.php?redirect…)

wordpress-login-error¿Estás teniendo problemas al entrar en wp-admin? ¿te hace una constante redirección de nuevo a la pantalla de login de WordPress con una url similar a esta: http://dominio.xxx/wp-login.php?redirect_to=http%3A%2F%2Fdominio.xxx%2Fwp-admin%2F&reauth=1?

Tranquilo que no has sido el único, yo también lo he sufrido en las instalaciones de algunos clientes y afortunadamente lo he podido solucionar como te cuento a continuación.

Motivos comunes y solución

  1. ¿Estás poniendo user/contraseña correctos? cuando lo pones mal sale un texto en rojo y cuando lo pones bien el login se redirige en bucle sin el texto en rojo.
  2. No es lo más común, pero tu sitio puede estar infectado y redireccionar el login a otra página para robarte la contraseña cuando la introduzcas. En este caso lo mejor es poner de nuevo todos los ficheros y carpetas de una instalación nueva de WordPress, es decir, hacer un update manual.
  3. Un problema de cookies causado por tu navegador que se soluciona limpiando todas las cookies de tu sitio y volviendo a logarte.
  4. Algún plugin de redirecciones o el fichero .htaccess mal configurado, para esto lo mejor es cambiar el nombre a la carpeta de plugins y poner un .htaccess nuevo.
  5. O lo que me estaba pasando a mí que lo cuento en el siguiente apartado.

No se puede hacer login en WordPress porque la BD está llena

Pues si amigo, cada vez que haces login en WordPress se ejecuta esta consulta MySQL:

  1. INSERT INTO `wp_options` (`option_name`, `option_value`, `autoload`)
  2. VALUES ('_transient_doing_cron', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'yes')
  3. ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)

Y claro si no queda espacio para hacer el INSERT en la tabla no podrás entrar a WordPress. Para saber si te está pasando define el modo DEBOUG en wp-config.php (define(‘WP_DEBUG’, true);) y te saldrá un mensaje de error con la consulta anterior y algo como: “Comando de inserción denegado para el usuario XXXX”.

Después tienes que mirar en Phpmyadmin que tabla se está pasando de largo y limpiarla. En mis casos era siempre la de wp_commentsmeta porque Akismet se volvió loco y lo lleno.

Limpiar wp_commentsmeta de basura generada por Akismet

Lo mejor que puedes hacer es una consulta como esta:

  1. DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)

Aunque en mi caso aproveche para borrar todos los que no estaban publicados porque me había entrado un montón de Spam. Usando la siguiente consulta.

  1. DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments WHERE comment_approved=1)

Nota: Ni falta que hace que diga que esas consultas son de borrado y se tienen que aplicar con mucho cuidado no te vayas a quedar sin ningún comentario en el blog. Y por supuesto siempre tienes que tener una copia de la BD a mano.

En fin espero que con esto puedas solucionar tus problemas de login.

 

 


Conoce mis servicios para WP.



Servicios personalizados para profesionales, agencias y PYMES

Deja un comentario

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