Astuce pour réinitialiser votre mot de passe WordPress

Grégory Hénique — 14/04/2020

Il est possible que vous soyiez bloqué, avec un mot de passe WordPress erroné, et l’impossibilité de vous connecter à votre base de données MySQL (si si c’est possible d’en arriver là, je confirme !). Dans ce cas-là cette astuce vous sera utile : elle vous permet de récupérer votre mot de passe d’administration WordPress par le biais de votre FTP. Je répète : pour cette astuce il faut donc quand même que vous puissiez vous connecter à vos fichiers sous le capot.

Wordpress et autour de WordPress

L’astuce

<?php
$user_id = 1;
$password = 'votre-nouveau-mot-de-passe';
wp_set_password( $password, $user_id );
?>

Mise en garde de cette technique

Cette fonction doit être utilisée avec parcimonie et n’est destinée qu’à une seule application, elle ne fonctionne qu’une fois.

L’utilisation inappropriée de cette fonction dans un plugin ou un thème pourrait entraîner une boucle sans fin de réinitialisation des mots de passe si des précautions ne sont pas prises pour s’assurer qu’elle ne s’exécute pas à chaque chargement de page.

Code alternatif

Vous pouvez aussi simplement coller ce petit bout de code à la fin de votre fichier wp-config.php.

function force_login() {
    if( !isset($_GET[ 'force_login' ]) || empty( $_GET[ 'force_login' ] ) )
        return;
      // get user
    $user = get_user_by('login', $_GET[ 'force_login' ] );
    if ( !is_wp_error( $user ) ) {
        // logging in user
        wp_clear_auth_cookie();
        wp_set_current_user ( $user->ID );
        wp_set_auth_cookie  ( $user->ID );
        $redirect_to = user_admin_url();
        wp_safe_redirect( $redirect_to );
        exit();
    }

}
add_action( 'template_redirect', 'force_login' );

Ensuite, vous devrez accéder à votre site par le biais de cette url :

https://nom-de-domaine.com/?force_login=yourusername