Si por el motivo que sea no puedes entrar como administrador a tu wordpress, aquí tenemos un conjunto de soluciones practicas para recuperar la contraseña. Recupera la cuenta de Administrador de WordPress en 5 minutos o un poco mas, con una de estas soluciones.
NOTA: Estas son medidas de última instancia, en este punto suponemos que ya intentaste recuperar la contraseña con el enlace ¿Has perdido tu contraseña? en la ventana de login.
Es una situación muy común que uno llega a una empresa y el anterior webmaster, o bien no dejo instrucciones, o la persona responsable en la empresa sabe de informática lo que yo se de química molecular. Entonces, no tienes los accesos administrativos de wordpress pero normalmente siempre hay acceso por FTP, SSH o por cPanel u otro sistema administrativo del servidor.
Antes de comenzar la explicación vamos a repasar los diferentes métodos de recuperación que existen:
- El método habitual, haciendo clic en ¿Has perdido tu contraseña? en la ventana de Login. La primera y la más evidente de las opciones. Nos llegará un email a la dirección que tengamos configurada en el usuario con un enlace para restablecer la contraseña.
- Cambiar el correo del Administrador en la Base de datos. A veces el correo del administrador no existe o no tenemos acceso, vamos a la Base de Datos y lo cambiamos, luego repetimos el método [1].
- Cambiar la contraseña en el Base de Datos. El 90% de las veces no sirve, con las nuevas versiones de wordpress. No vale la pena que lo explique
- Resetear la contraseña del administrador. Lo explicamos mas abajo si no sabes nada de programación esta es la solución intermedia mas práctica.
- Asignar una nueva contraseña de administrador. Recomendado para usuarios avanzados, forzamos desde PHP a reconocer una contraseña que proporcionamos por una variable.
Recuperar la Contraseña con acceso por cPanel
Tener acceso al cPanel o cualquier tipo de administrador de hosting es una gran ayuda, en este caso en 5 minutos o menos puedes tener el control de vuelta.
Cambiar el correo del Administrador en la Base de Datos [2]
Es la vía mas rápida de todas siempre y cuando el wordpress no tenga problemas para enviar la contraseña a la cuenta de correo. Suponiendo que funcione bien, solo tendrás que hacer esto:
- Accedemos al Administrador del Hosting (supongamos cPanel).
- Desde el Administrador de Archivos localizamos wp-config.php.
- Visualizamos el contenido y comprobamos cual es la base de datos.
- Desde el Panel del Hosting accedemos a phpMyAdmin cargamos la base de datos y buscamos la tabla wp_users.
- Si existen varios usuarios en la columna user_login localizamos el primero en la lista que suele ser el administrador (casi siempre el del ID 1), y cambiamos el correo del administrador por nuestro correo.
- Luego volvemos a probar el método 1 y si funciona todo bien.
El método 2 es muy buena idea, pero no funciona cuando usas un VPS y tienes el servicio de correo desactivado en tu servidor para ahorrar recursos, cuando tus registros MX apuntan a otro lado o por diversos motivos nunca llega el correo desde ese servidor. Lo he añadido ya que me han pedido que lo explique.
Resetear la contraseña del administrador de WordPress [3]
Se necesita el nombre del usuario administrador, bien si es el único o si te sabes el nombre de los usuarios. En si este truco sirve para cambiar la contraseña de cualquier usuario, pero para lo que siempre se usa es para cambiar la del usuario administrador.
Si no sabemos el nombre del Usuario Administrador
- Accedemos al Administrador del Hosting (supongamos cPanel).
- Desde el Administrador de Archivos localizamos wp-config.php.
- Visualizamos el contenido y comprobamos cual es la base de datos.
- Desde el Panel del Hosting accedemos a phpMyAdmin cargamos la base de datos y buscamos la tabla wp_users (o puede ser: ??_users, etc. recuerda que el prefijo de la base de datos puede ser otro, revisa la configuración de wp-config para mayor certeza).
- Si existen varios usuarios en la columna user_login localizamos el primero en la lista que suele ser el administrador (casi siempre el del ID 1).
Listo con esto ya tenemos el Nombre del Usuario Administrador, vamos al paso siguiente para cambiar la contraseña.
Si conocemos el nombre del usuario Administrador
Mucha gente recomienda editar la tabla en la base de datos y cambiar la contraseña lo que no te dicen muchas veces es que esa contraseña esta codificada en MD5 y a veces MD5 + algunos caracteres extra que wordpress añade por seguridad, por lo que a mucha gente no le suele resultar esta opción.
- Bajamos el archivo recoverpassword. (Está en español).
- Accedemos al Administrador de Archivos desde el servidor /public_html (o carpeta de la instalación de WordPress).
- Subimos el archivo recoverpassword.php en la misma ruta donde este wp-config.php.
Desde el navegador invocamos el archivo https://www.dominio.com/recoverpassword.php. - Mostrará una pantalla donde colocaremos el nombre del administrador en el campo «Nombre del Usuario» y la nueva contraseña en el campo «Nueva Contraseña«.
- Clic en Update Options (se me olvidó traducir el botón). para aplicar los cambios.
- Iniciamos sesión en WordPress con la nueva contraseña para verificar que todo este bien.
- Eliminamos desde el Administrador de Archivos de cPanel el archivo emergency.php.
Recuperar la Contraseña solo con FTP o SSH
Algunos webmasters que contratan VPS o Servidores Dedicados, tienen cierta tendencia a desactivar servicios como el correo electrónico (si no los van a usar mejor no activarlo consumen mucho cpu), o evitan instalar interfaces visuales (como cPanel) que consuman recursos del servidor.
Asignar una nueva contraseña de administrador en WordPress [4]
Voy a explicar los pasos suponiendo que sabes como funciona el FTP o ya tienes dominio de SSH. Si no sabes entonces buscar un cursillo de FTP que hay muchos por ahí, ya que SSH es mucho mas complejo.
Lo que vamos a hacer es ir a la carpeta del tema activo y editar el archivo functions.php.
¿Y cómo sabemos cuál es el tema activo?
Muy fácil abres la página web y le das clic al botón derecho de tu mouse en «ver código fuente de la página», en el teclado pisas Ctrl + F (osea, buscar) y buscas: style.css
Es posible que te aparezcan varios resultados, pero el que nos interesa es el que esta 2 niveles después de wp-content/themes. Un ejemplo de lo que estaríamos buscando sería:
<link rel='stylesheet' href='https://dominio.com/wp-content/themes/divi-child/style.css?ver=1.0.0' type='text/css' />
Entonces ya sabemos que la ruta que buscamos es: «/wp-content/themes/divi-child/».
Ahora lo que hacemos es editar el archivo functions.php y al final del archivo añadimos lo siguiente:
wp_set_password( 'password', 1 )
Dónde password es la contraseña que le asignaremos al primer usuario de la base de datos. Puedes escribir password o lo que sea. Guardamos y ya está.
Suponiendo que aún exista el usuario con el ID «1» y aún se llame «admin». En este caso no tendrás mayores problemas pero dado el caso que no sea así tienes que averiguar esa información.
¿Cómo averiguar el Nombre de Usuario y ID del administrador con FTP o SSH?
Suponiendo como dije anteriormente que sabes usar FTP, lo que tienes que hacer es lo siguiente:
- Descarga del servidor el archivo wp-config.php, esto te proporcionara las credenciales de acceso a la base de datos.
- Descarga phpMyAdmin de aquí. Descomprime el .zip en tu disco.
- Sube al servidor (de preferencia en la carpeta /wp-content/uploads/) el phpMyAdmin. Utilizando las credenciales de wp-config.php podremos examinar la base de datos.
- Ahora ya tienes la información que te faltaba.
- Si no te funciona (ya que muchos servidores no lo permiten) intenta la solución de mas abajo.
¿Cómo acceder a la Base de Datos vía FTP o SSH?
Muchos servidores tienen activado algo que se llama Mod_Security, es un modulo de apache que añade una capa de seguridad que bloque aciertos procesos o scripts conocidos. El objetivo es proteger el servidor bloqueando scripts o comportamientos que pueden perjudicar el servicio. Según las políticas de la empresa de hosting o el administrador del servidor, las reglas de Mod_Security pueden variar.
Toco este tema del Mod_Security porque si tu servidor tiene ciertas políticas activadas muy probablemente, no te dejará ejecutar phpMyAdmin o ni siquiera puedas subirlo al servidor.
Creo que este truco solo lo verás en este blog, ya que no he visto a nadie mas recomendarlo. Lo que haremos es subir un manejador de base de datos de 1 solo archivo, llamado Adminer, que lo puedes bajar se su web oficial: www.adminer.org
Suponiendo como dije anteriormente que sabes usar FTP o SSH, lo que tienes que hacer es lo siguiente:
- Descarga del servidor el archivo wp-config.php, para consultar las credenciales de la base de datos.
- Descargar Adminer de la web oficial. No lo bajes de ningún otro lado.
- Súbelo al servidor (de preferencia en la carpeta /wp-content/uploads/).
- Utilizando las credenciales de wp-config.php podrás examinar la base de datos.
Puedes utilizar este truco para acceder a cualquier base de datos en Servidores que no te permitan ejecutar o subir phpMyAdmin, no es exclusivo para wordpress.
Espero que te haya sido de ayuda, cualquier duda la puedes dejar en los comentarios.