Astuces & Snippets WordPress

Ajouter un mot de passe pour votre site WordPress

Pour diminuer les risques de vol de compte, il peut être intéréssant d'ajouter un mot de passe supplémentaire commun à tous les utilisateurs inscrits sur votre site.

S'inscrire à la newsletter

Votre compte d’accès à l’administration de votre WordPress est protégé par un mot de passe que vous avez choisi lors de sa création. Parmi les membres inscrits sur votre site, on peut trouver des utilisateurs qui peuvent s’y connecter pour commenter, mais aussi des auteurs ou des contributeurs qui rédigent des articles. Aussi, vous souhaiteriez ajouter un mot de passe commun pour tout le monde, en plus du mot de passe personnel : un mot de passe pour le site.

Ajout du nouveau champ dans le formulaire de connexion

Avec le hook login_form, il est possible d’ajouter du code HTML dans le formulaire de connexion. On en profite pour insérer le champ réservé au mot de passe supplémentaire.

Copier le code ci-dessous dans le fichier functions.php présent à la racine de votre thème :

function baw_login_form_add_field() { ?>
 <p>
  <label>Mot de passe du site<br />
  <input name="site_pass" tabindex="30" type="password" class="input" id="site_pass" /></label><br />
  Besoin d'un mot de passe ? <a href="/contact">Contactez nous</a> !
 </p>
 <?php
}
add_action( 'login_form', 'baw_login_form_add_field' );

Traiter le nouveau mot de passe

Sur le hook authenticate, on peut empêcher un membre valide (on entend par là un membre qui a correctement entré toutes les autres informations) de se connecter. On le fait ici en vérifiant la valeur du mot de passe envoyée dans le formulaire de connexion dont le nom du champ est site_pass.

Copier le code-ci dessous dans le fichier functions.php présent à la racine de notre votre thème :

function baw_login_authenticate( $raw_user, $username ) {
    
    // Le nouveau pass supplémentaire
    $new_password = 'ceci est un super mot de passe a retenir';
    
    if( !empty( $username ) && ( !isset( $_POST['site_pass'] ) || $_POST['site_pass']!=$new_password ) ) {
        
        // on secoue la fenêtre de login
        add_action( 'login_head', 'wp_shake_js', 12 );

        // et on court-circuite la fin du login en renvoyant une erreur
        return new WP_Error( 'authentication_failed', '<strong>ERREUR</strong>: Le mot de passe du site est incorrect.' );
    }
    
    // ... sinon on renvoie ce qui en donné en entrée
    return $raw_user;
}
add_filter('authenticate', 'baw_login_authenticate', 999, 2 );

Voici le résultat en image :

Vous voilà avec un mot de passe supplémentaire pour votre site !

Mots-clés: php username wordpress
13 commentaires
  1. Ju le

    Je découvre ! :)

    Du coup on peut s’en servir pour faire un Captcha light non ? Inserer une image qui demande d’écrire le resultat de 2 + trois par exemple …

  2. Julio Potier (BoiteAWeb) le

    Bien sûr, avec ça tu as une bonne base. Si tu en fait un captcha partage le ici ! À bientôt :-)

  3. La rando le

    Excelent, c’est le top pour les mots de passe des membres qui utilisent l’interface! merci pour cet article!

  4. Joseph le

    Bonjour,
    Pourriez-vous m’indiquer comment insérer le champ réservé au mot de passe supplémentaire ?
    Merci par avance,
    -Jo

  5. Joseph le

    C’est parfait, merci Julio!

  6. jmlapam le

    Merci beaucoup. Vraiment utile en production cette astuce. A tweeter …

  7. Jonathan Buttigieg le

    Idem. Je pense que je vais mettre ceci en place sur les sites clients en prod :)

  8. Julio Potier (BoiteAWeb) le

    Super je suis content que ça vous plaise et que ça serve aussi ! À bientôt

  9. lykxie le

    Bonjour,

    Merci pour vos infos. J’aurai une question, comment faire pour bloquer une partie du site, par exemple mettre une page de téléchargement ou seuls des internautes ayant un mot de passe peuvent y accéder?
    Pour me joindre: lykxie@yahoo.fr

    Merci d’avance pour votre attention!

  10. Jonathan Buttigieg le

    @LYKXIE: Il suffit de créer votre page et de lui mettre un mot de passe :)

  11. Julio Potier (BoiteAWeb) le

    Euh crée une page et passe son statut en privé ?

Poster un commentaire

Les champs obligatoires sont indiqués avec *

Ici, on utilise KeywordLuv. Entrez YourName@YourKeywords dans le formulaire "Pseudo" pour bénéficier des avantages SEO d'un mot-clef ciblé. Attention, tous les commentaires non-constructifs ne bénéficieront pas d'une ancre optimisée.

Prévenez moi de tous les nouveaux commentaires par email.

Ne plus afficher|Fermer
Suivez-nous sur Facebook !