Personnaliser complètement la page de connexion WordPress

Personnaliser complètement la page de connexion WordPress
WordPress Lecture 10 minutes • 14 juillet 2017

La page de connexion WordPress ne propose qu'un design unique et la démarche pour personnaliser l'interface aux couleurs de son entreprise peut paraitre un peu mystérieuse.
Aucune option disponible dans WordPress ne permet d'ajouter son propre logo ou encore de changer le fond de page pour une belle image (de licorne, quoi d'autre) en pleine page. Bref, donner un look qui envoi et vous ressemble.
Ce tutoriel vous montre les bases simples du fonctionnement du système de connexion de WordPress, et comment le personnaliser pour arriver exactement à ce que vous souhaitez. Nous allons parcourir quelques étapes ensemble en utilisant du PHP et du CSS uniquement. Si vous n'êtes pas à l'aise avec cette dernière phrase et que vous avez froncé des sourcils, voici 2 extensions pour arriver à ce résultat plus simplement et rapidement : Custom Login (gratuit) et Ultimate Branding (payant).

Ce que nous allons créer

Avant de commencer, voici le look de la page une fois personnalisée :

Page de connexion WordPress personnalisée licornes

Notre page de connexion magnifiquement personnalisée

Nous allons apporter des modifications au fichier functions.php donc si vous ne voulez pas perdre votre code lors des mises à jour, pensez à créer un thème enfant si ce n'est déjà fait. Parmi les 10 personnalisations que nous abordons, il est tout à fait possible de sélectionner librement celles dont vous avez besoin.

Personnaliser la page de connexion WordPress

Ce tutoriel vous livre plusieurs modifications toutes prêtes. Avec quelques ajustements vous avez de quoi créer une page de connexion plus personnalisée qu'un Flow Deezer.

  1. Ajouter un fond perso
  2. Remplacer le logo WordPress par le votre
  3. Arranger l'apparence du formulaire de contact
  4. Changer l'URL du logo
  5. Retirer le lien "Mot de passe oublié"
  6. Retirer le lien "Retour à.."
  7. Cacher le message d'erreur de connexion
  8. Retirer l'effet secousse lors de la connexion
  9. Modifier l'URL de redirection
  10. Garder cochée la case "Se souvenir de moi"

Vous avez peut-être cherché, mais la page de connexion WordPress n'a pas de fichier php dédié. Et si vous essayez de modifier la page de connexion depuis la feuille de style du thème, WordPress refuse de charger ces corrections. Mais tout ça n'est pas un problème parce qu'on peut créer la notre.

Voici ce qu'il faut faire :

  1. Dans votre dossier de thème, créez un nouveau dossier nommé "login"
  2. Créez un nouveau fichier CSS (avec sublime text ou Notepad ++) que vous nommerez login-style-perso.css
  3. Placez le fichier login-style-perso.css dans le nouveau dossier /login
  4. Maintenant, il faut demander à WordPress de charger ce fichier CSS. Ouvrez le fichier functions.php et ajoutez le code suivant :

[pastacode lang="php" manual="function%20my_custom_login()%20%7B%0A%20%0Aecho%20'%3Clink%20rel%3D%22stylesheet%22%20type%3D%22text%2Fcss%22%20href%3D%22'%20.%20get_bloginfo('stylesheet_directory')%20.%20'%2Flogin%2Flogin-style-perso.css%22%20%2F%3E'%3B%0A%7D%0A%20%0Aadd_action('login_head'%2C%20'my_custom_login')%3B" message="Appeler votre nouvelle feuille de style" highlight="" provider="manual"/]

Allez, en avant !

Afficher un fond de page perso

Rien de plus simple, commencez par déposer votre image dans le dossier /login. Il vous suffit ensuite d'ajouter les lignes suivantes dans votre fichier login-style-perso.css :

[pastacode lang="css" manual="body.login%20%7B%0A%20%20background-image%3A%20url('licorne-bg.jpg')%3B%0A%20%20background-repeat%3A%20no-repeat%3B%0A%20%20background-attachment%3A%20fixed%3B%0A%20%20background-position%3A%20center%3B%0A%20%20background-size%3Acover%3B%0A%7D" message="Afficher un fond de page perso via CSS" highlight="" provider="manual"/]


Pensez à remplacer la ligne "licorne-bg.jpg" par le nom de votre propre image de fond.

Remplacer le logo WordPress par le vôtre

Commencez par ajouter l'image de votre logo dans le dossier /login. Ensuite ajoutez les lignes suivantes dans le fichier login-style-perso.css :

[pastacode lang="css" manual=".login%20h1%20a%20%7B%0A%20%09background-image%3A%20url('licorne-logo.png')%3B%20%0A%09background-size%3A%20120px%3B%20%0A%09height%3A%20120px%3B%20%0A%09width%3A%20120px%3B%20%0A%7D%20" message="Remplacer le logo WordPress via CSS" highlight="" provider="manual"/]

Pensez à remplacer "licorne-logo.png" par le nom de votre image de logo. Vous pouvez grossir ou diminuer la taille du logo grâce aux propriétés background-size, width et height.

Personnaliser l'apparence du formulaire de connexion

Maintenant nous allons jouer avec le rendu du formulaire pour qu'il soit un peu plus moderne et arrondis. Vous êtes complètement libres de changer le code CSS suivant selon vos goûts.
Nous commençons par modifier les label pour avoir un texte plus sombre, puis les inputs (champs) afin de leur donner un style plus arrondis.


[pastacode lang="css" manual=".login%20label%20%7B%20%0A%09font-size%3A%2012px%3B%20%0A%09color%3A%20%23555555%3B%20%0A%7D%20%0A%0A.login%20input%5Btype%3D%22text%22%5D%7B%20%0A%09background-color%3A%20%23ffffff%3B%20%0A%09border-color%3A%23dddddd%3B%20%0A%09-webkit-border-radius%3A%204px%3B%20%0A%7D%20%0A%0A.login%20input%5Btype%3D%22password%22%5D%7B%20%0A%09background-color%3A%20%23ffffff%3B%20%0A%09border-color%3A%23dddddd%3B%20%0A%09-webkit-border-radius%3A%204px%3B%20%0A%7D" message="Styliser le formulaire de connexion" highlight="" provider="manual"/]


La prochaine étape permet de personnaliser le bouton en optant pour un rose enchanté :

[pastacode lang="css" manual=".login%20.button-primary%20%7B%20%0A%09width%3A%20120px%3B%20%0A%09float%3Aright%3B%20%0A%09background-color%3A%23fb6cf3%20!important%3B%20%0A%09color%3A%20%23ffffff%3B%20%0A%09font-weight%3Abold%3B%20%0A%09-webkit-border-radius%3A%204px%3B%20%0A%09border%3A%201px%20solid%20%23fb33ef%3B%20%0A%09box-shadow%3A%20none%3B%20%0A%09text-shadow%3A%20none%3B%20%0A%7D%20%0A%0A.login%20.button-primary%3Ahover%20%7B%20%0A%09background-color%3A%23fb33ef%20!important%3B%20%0A%09color%3A%20%23fff%3B%20%0A%09-webkit-border-radius%3A%204px%3B%20%0A%09border%3A%201px%20solid%20%23fb33ef%3B%20%0A%7D%20%0A%0A.login%20.button-primary%3Aactive%20%7B%0A%09background-color%3A%23fb33ef%20!important%3B%20%0A%09color%3A%20%23fff%3B%20%0A%09-webkit-border-radius%3A%204px%3B%20%0A%09border%3A%201px%20solid%20%23fb33ef%3B%20%0A%7D" message="Personnaliser le bouton (ici on opte pour l'option girly) " highlight="" provider="manual"/]

Modifier l'URL du logo

Par défaut le logo renvoi vers wordpress.org. Vous pouvez faire pointer le lien vers l'adresse de votre site à la place en ajoutant ce code au fichier functions.php :

[pastacode lang="php" manual="function%20my_login_logo_url()%20%7B%0Areturn%20get_bloginfo(%20'url'%20)%3B%0A%7D%0Aadd_filter(%20'login_headerurl'%2C%20'my_login_logo_url'%20)%3B%0A%20%0Afunction%20my_login_logo_url_title()%20%7B%0Areturn%20get_bloginfo(%20'name'%20)%3B%0A%7D%0Aadd_filter(%20'login_headertext'%2C%20'my_login_logo_url_title'%20)%3B" message="Changer le lien de destination du logo" highlight="" provider="manual"/]

Remplacez "Nom de mon site Internet" par le votre. Il s'agit simplement de la balise alt du logo.

Retirer le lien Mot de passe perdu

Le lien "Mot de passe perdu ?" est très utiles mais si quelqu'un a piraté votre e-mail il sera capable d'avoir votre mot de passe WordPress et de prendre le contrôle de votre site.
Pour retirer ce lien, ajoutez ce code à votre fichier login-style-perso.css :


[pastacode lang="css" manual="p%23nav%20%7B%0Adisplay%3A%20none%3B%0A%7D" message="Retirer "Mot de passe perdu"" highlight="" provider="manual"/]

Retirer le lien "Retour au site"

Ce lien permet aux utilisateurs de retourner sur la page d'accueil du site. Je fais le choix d'un style très épuré et souhaite donc le faire disparaitre de sous mon formulaire. Ajoutez ce code à votre fichier login-style-perso.css :

[pastacode lang="css" manual="p%23backtoblog%7B%0Adisplay%3A%20none%3B%0A%7D" message="Retirer "Retour au site"" highlight="" provider="manual"/]


Cacher le message d'erreur d'identification

Lorsque vous saisissez un mauvais nom d'utilisateur ou un mauvais mot de passe, WordPress vous le dit dans un message d'erreur. Alors oui c'est très pratique pour vous, mais aussi pour des pirates. Car le message d'erreur précise à chaque tentative si c'est l'identifiant ou le mot de passe qui est faux. Ainsi de bons hackers vont tester des centaines de possibilités parmi les mots de passes les plus communs par exemple (123456, date de naissance...).
Une solution complète est de sécuriser efficacement votre site WordPress. Ici nous allons simplement cacher le message grâce au code suivant à insérer dans votre fichier functions.php :

[pastacode lang="php" manual="function%20login_error_override()%0A%7B%0Areturn%20'D%C3%A9tails%20de%20connexion%20incorrects.'%3B%0A%7D%0Aadd_filter('login_errors'%2C%20'login_error_override')%3B" message="Cacher le message d'erreur d'identification - functions.php" highlight="" provider="manual"/]

Personnalisez le message à faire apparaître selon vos préférences.

Retirer l'effet secousse lors d'une tentative de connexion

Quand vous entrez un mauvais identifiant ou mot de passe, le formulaire se secoue pour alerter visuellement l'utilisateur qu'il s'est trompé.
Certains trouvent cet effet ennuyeux voir énervant et souhaiterons le retirer. Ajoutez ce code au fichier functions.php :

[pastacode lang="php" manual="function%20my_login_head()%20%7B%0Aremove_action('login_head'%2C%20'wp_shake_js'%2C%2012)%3B%0A%7D%0Aadd_action('login_head'%2C%20'my_login_head')%3B" message="Retirer l'effet secousse - functions.php" highlight="" provider="manual"/]


Modifier la redirection

Après une connexion réussie vous êtes redirigé vers le tableau de bord de WordPress. Vous pouvez changer ce comportement facilement pour rediriger les utilisateurs vers la page d'accueil par exemple.
Ajoutez le code suivant dans le fichier functions.php de sorte que tous les utilisateurs autres que admin soient automatiquement redirigés :

[pastacode lang="php" manual="function%20admin_login_redirect(%20%24redirect_to%2C%20%24request%2C%20%24user%20)%0A%7B%0Aglobal%20%24user%3B%0Aif(%20isset(%20%24user-%3Eroles%20)%20%26%26%20is_array(%20%24user-%3Eroles%20)%20)%20%7B%0Aif(%20in_array(%20%22administrator%22%2C%20%24user-%3Eroles%20)%20)%20%7B%0Areturn%20%24redirect_to%3B%0A%7D%20else%20%7B%0Areturn%20home_url()%3B%0A%7D%0A%7D%0Aelse%0A%7B%0Areturn%20%24redirect_to%3B%0A%7D%0A%7D%0Aadd_filter(%22login_redirect%22%2C%20%22admin_login_redirect%22%2C%2010%2C%203)%3B" message="Modifier la redirection - functions.php" highlight="" provider="manual"/]

Pré-cocher "Se souvenir de moi"

La case "Se souvenir de moi" est décochée par défaut. J'aime cocher cette case quand je me connecte mais parfois j'oublie et réalise plus tard que c'est trop tard !
Pour laisser cette case toujours cochée, ajoutez le code suivant au fichier functions.php :

[pastacode lang="php" manual="function%20login_checked_remember_me()%20%7B%0Aadd_filter(%20'login_footer'%2C%20'rememberme_checked'%20)%3B%0A%7D%0Aadd_action(%20'init'%2C%20'login_checked_remember_me'%20)%3B%0A%0Afunction%20rememberme_checked()%20%7B%0Aecho%20%22%3Cscript%3Edocument.getElementById('rememberme').checked%20%3D%20true%3B%3C%2Fscript%3E%22%3B%0A%7D" message="Pré-cocher "Se souvenir de moi" - functions.php" highlight="" provider="manual"/]

En conclusion

Beaucoup de développeurs négligent la page de connexion car elle n'est pas visible des internautes. Cependant lorsque vous travaillez pour un client, c'est une belle opportunité de mettre en avant la finition de votre travail et l'image de marque de l'entreprise (évitez les licornes hein !).
Pour les utilisateurs du site, la page de connexion annonce une expérience utilisateur haute en couleurs si elle est proprement personnalisée.
La modification en vaut bien la peine pour le peu d'effort qu'elle demande. C'est une opportunité supplémentaire de mettre le site à l'image de l'entreprise et faire bonne impression.


Si cet article vous a aidé, lâchez votre plus bel applaudissement en remerciement ! 🤗