Todas las formas de cambiar la contraseña de WordPress

¿No puedes entrar a WordPress? Aquí encontrarás todas las formas que existen para recuperar el acceso a WordPress: subiendo un archivo por FTP o cPanel; cambiando la contraseña en la base de datos MySQL con phpMyAdmin; usando el escritorio, o recibiendo un correo para cambiar la contraseña.


1 - Desde el Escritorio
2 - Con el correo electrónico del usuario
3 - Con PhpMyAdmin
4 - Por FTP con un script PHP

Caso 1 - Tengo acceso al Escritorio

Es el caso más sencillo en el que tienes acceso al escritorio y quieres cambiar la contraseña del usuario que ya está logueado.

Es útil en el caso de que no conoces la contraseña y, sin embargo tienes acceso al escritorio porque el navegador ha guardado el inicio de sesión con una cookie.

Aquí tienes los pasos:

  • Entra al escritorio (http://example.org/wp-admin)
  • Pulsa en Usuarios y luego edita tu usuario.
  • Busca el apartado Gestión de la cuenta, escribe la Nueva contraseña y guarda los cambios.

O mira el vídeo:

Caso 2 - No puedo entrar al administrador pero recuerdo el correo

No recuerdas la contraseña pero, recuerdas el nombre de usuario o la dirección de correo electrónico. Además, puedes recibir correos en este buzón.

En este caso, utiliza el enlace Has perdido tu contraseña que está en la pantalla de acceso al administrador (http://example.org/login).

Aquí puedes ver todos los pasos:

Al finalizar recibes un correo electrónico con un enlace que sirve para cambiar tu contraseña.

Caso 3 - Cambiar la contraseña en MySQL

Si desconoces el usuario y la contraseña de WordPress pero tienes acceso a cPanel puedes usar el gestor de bases de datos -phpMyAdmin- para ver el nombre de tu usuario y cambiar su contraseña.

NOTA Antes de continuar, es importante saber que las contraseñas de WordPress están encriptadas en MD5.

Desde MySQL puedes cambiar la contraseña de cualquier usuario, su email e incluso su nombre de usuario.

Paso a paso:

  • Entra a cPanel añadiendo /cpanel tras de la dirección de tu sitio. (http://example.org/cpanel)
  • Pulsa en el botón phpMyAdmin.
  • Pulsa en el nombre de la base de datos y luego en la tabla wp_users.
  • Aparece un listado con todos los usuarios registrados en WordPress. Busca el tuyo y pulsa en editar.
  • Busca la columna user_pass, en el campo Función, pulsa en el desplegable y selecciona md5 y en el campo Valor escribe la nueva contraseña en claro.
    Pulsa el botón Continuar para reestablecer la contraseña.

Si prefieres la sentencia SQL es la siguiente:

UPDATE wp_users SET user_pass = MD5('contraseña') WHERE user_login = 'usuario';

WordPress reconoce inmediatamente el cambio de contraseña en la base de datos. Así que, ya puedes probar el acceso con la nueva contraseña y el usuario.

Si desconoces el nombre de usuario del administrador tienes que buscar en la tabla wp_users el usuario con el Id igual a 1. Dentro aparece el nombre de usuario en la columna user_login y su dirección de correo electrónico en la columna user_email.

En este vídeo puedes ver el paso paso para cambiar la contraseña usando phpMyAdmin.

Caso 4 - Cambiar la contraseña por FTP

Este caso te servirá si no tienes acceso a la base de datos pero tienes acceso por una cuenta FTP o a través del administrador de archivos de cPanel.

Estos son los pasos:

  • Crear un fichero llamado emergencia.php en el raíz del sitio -en la carpeta public_html si usas cPanel- con este contenido:
<?php
/**
 * emergency.php
 * Credits:
 * MichaelH, https://codex.wordpress.org/User:MichaelH/Orphaned_Plugins_needing_Adoption/Emergency
 * License: GNU General Public License v2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
 */

require './wp-blog-header.php';

function meh() {
	global $wpdb;

	if ( isset( $_POST['update'] ) ) {
		$user_login = ( empty( $_POST['e-name'] ) ? '' : sanitize_user( $_POST['e-name'] ) );
		$user_pass  = ( empty( $_POST[ 'e-pass' ] ) ? '' : $_POST['e-pass'] );
		$answer = ( empty( $user_login ) ? '<div id="message" class="updated fade"><p><strong>The user name field is empty.</strong></p></div>' : '' );
		$answer .= ( empty( $user_pass ) ? '<div id="message" class="updated fade"><p><strong>The password field is empty.</strong></p></div>' : '' );
		if ( $user_login != $wpdb->get_var( "SELECT user_login FROM $wpdb->users WHERE ID = '1' LIMIT 1" ) ) {
			$answer .="<div id='message' class='updated fade'><p><strong>That is not the correct administrator username.</strong></p></div>";
		}
		if ( empty( $answer ) ) {
			$wpdb->query( "UPDATE $wpdb->users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'" );
			$plaintext_pass = $user_pass;
			$message = __( 'Someone, hopefully you, has reset the Administrator password for your WordPress blog. Details follow:' ). "\r\n";
			$message  .= sprintf( __( 'Username: %s' ), $user_login ) . "\r\n";
			$message .= sprintf( __( 'Password: %s' ), $plaintext_pass ) . "\r\n";
			@wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Your WordPress administrator password has been changed!' ), get_option( 'blogname' ) ), $message );
			$answer="<div id='message' class='updated fade'><p><strong>Your password has been successfully changed</strong></p><p><strong>An e-mail with this information has been dispatched to the WordPress blog administrator</strong></p><p><strong>You should now delete this file off your server. DO NOT LEAVE IT UP FOR SOMEONE ELSE TO FIND!</strong></p></div>";
		}
	}

	return empty( $answer ) ? false : $answer;
}

$answer = meh();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>WordPress Emergency PassWord Reset</title>
	<meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
	<link rel="stylesheet" href="<?php bloginfo( 'wpurl' ); ?>/wp-admin/wp-admin.css?version=<?php bloginfo( 'version' ); ?>" type="text/css" />
</head>
<body>
	<div class="wrap">
		<form method="post" action="">
			<h2>WordPress Emergency PassWord Reset</h2>
			<p><strong>Your use of this script is at your sole risk. All code is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness. Further, I shall not be liable for any damages you may sustain by using this script, whether direct, indirect, special, incidental or consequential.</strong></p>
			<p>This script is intended to be used as <strong>a last resort</strong> by WordPress administrators that are unable to access the database.
				Usage of this script requires that you know the Administrator's user name for the WordPress install. (For most installs, that is going to be "admin" without the quotes.)</p>
			<?php
			echo $answer;
			?>
			<p class="submit"><input type="submit" name="update" value="Update Options" /></p>

			<fieldset class="options">
				<legend>WordPress Administrator</legend>
				<label><?php _e( 'Enter Username:' ) ?><br />
					<input type="text" name="e-name" id="e-name" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-name'] ) ); ?>" size="20" tabindex="10" /></label>
				</fieldset>
				<fieldset class="options">
					<legend>Password</legend>
					<label><?php _e( 'Enter New Password:' ) ?><br />
					<input type="text" name="e-pass" id="e-pass" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-pass'] ) ); ?>" size="25" tabindex="20" /></label>
				</fieldset>

				<p class="submit"><input type="submit" name="update" value="Update Options" /></p>
			</form>
		</div>
	</body>
</html>
<?php exit; ?>
  • Abre un navegador y carga la dirección de tu sitio a la que añades /emergencia.php.
    Por ejemplo: http://example.org/emergencia.php
    Verás un formulario que te pide un nombre de usuario y una contraseña. Escribe el nombre de tu usuario, la nueva contraseña que quieres establecer y pulsa en el botón Update.
    Si todo va bien, la aplicación informa en la pantalla y por correo electrónico del cambio de contraseña y ya puedes probar el acceso.

IMPORTANTE Al finalizar, es importante que borres el fichero emergencia.php, de otro modo, cualquiera puede utilizarlo y cambiar tu contraseña.

Otra nota. A la hora de enviar datos con un formulario es importante hacerlo usando una conexión segura -https- ya que, de otro modo un atacante podría capturar la información. De ahí la importancia de contar con un certificado de seguridad SSL.

Como ves, perder la contraseña de WordPress no es un problema si conoces las técnicas para recuperarla. Solo necesitas tener las claves de acceso al alojamiento web y seguir unas sencillas instrucciones para cambiar la contraseña de WordPress en la base de datos o por FTP.

César Maeso


Creative Commons License

Esta obra está bajo una licencia de Creative
Commons Reconocimiento-NoComercial-CompartirIgual
4.0 Internacional
.