Born to Code: la programmation par l'exemple

Coder par l'exemple, de Latex à Android, btc, what else ?

Menu Skip to content
  • Accueil
  • Contact

WordPress : personnaliser la page de login par défaut

Partager cet articleTweet

Temps estimé pour la lecture de cet article : 23 min

Un petit article assez court pour montrer comment, on peut facilement customiser la page de login pour l’administration de wordpress. On verra comment on peut modifier le fond ou encore comment masquer le logo, mais également comment rajouter un peu de sécurité.

wordpress-login-default

wordpress-login-result

Personnaliser l’apparence de la page de login

On va utiliser un hook qui va nous permettre d’insérer un style uniquement pour la page de login. Pour ce faire, il suffit d’ajouter ces quelques lignes de php dans le fichier function.php de votre thème (généralement situé dans le dossier wp-content/themes/votre_theme) ou encore dans un plugin (pour ceux que ça intéresse je vous laisse suivre ce tutoriel).

add_action('login_head', 'custom_login');

function custom_login() {
    echo '<link rel="stylesheet" type="text/css" href="'.get_bloginfo('template_directory').'/css/login.css" />';
}

La fonction add_action(), vous permet de rajouter un filtre pour wordpress, le fameux hook dont l’on va se servir s’appelle login_head, on précise donc à wordpress qu’on associe à cet hook la fonction custom_login. Cette dernière permet d’insèrer un lien vers un fichier css.

On crée donc un fichier login.css, qu’on aurait mis dans un dossier css. Je crée également ici un dossier images dans lequel je mets un fond. On utilise la propriété cover de la propriété background.

body {
    background-image: url('../images/back.jpg')!important;
    background-size: 100%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
     background-size: cover;
}

#login {
	width: 350px;
}
#login h1 {
	display: none;
}

#login #loginform {
	background-color: rgba(0,0,0,0.4);
}

#login label {
	color: white;
}
#login .input {
	background: #F0F0F0;
	display: inline-block;
	padding: 5px 8px;
	color: #212121;
	height: 30px;
	font-size: 18px;
}

À partir d’ici, on obtient déjà quelque chose de plus agréable :

wordpress-login-firststep

Ajouter du contenu

Et si on essayait maintenant de remplacer les liens du dessous par des boutons, ou en tout cas des icônes afin d’être plus accessible ou même visuellement plus attractif, pour se faire on va commencer par masquer les deux liens, ni une, ni deux, on rajoute dans notre fichier css, ces deux lignes :

#nav {
	display: none;
}
#backtoblog {
	display: none;
}

Ensuite, on utilise le hook login_footer et on définit la fonction custom_footer_login. On va alors utiliser la fonction site_url qui va permettre de récupérer l’adresse url de base de votre site, par exemple pour moi ça serait : borntocode.fr. Après, dans mon cas je place le tout dans un thème, j’utilise donc la fonction get_bloginfo et je précise la chaîne template_directory, afin de récupérer l’emplacement de mon thème.

add_action('login_footer','add_footer_login');

function add_footer_login()  {
	$url = site_url();

	echo "<div class='actions'>";
		echo "<a href='".$url."' id='login-back' class='opacity'><img src='".get_bloginfo('template_directory')."/images/back.png' alt='' /></a>";
		echo "<a href='".$url."/wp-login.php?action=lostpassword' id='login-forget' class='opacity'><img src='".get_bloginfo('template_directory')."/images/forget.png' alt='' /></a>";
	echo "</div>";
}

Et enfin, pour le css, on va simplement définir une div de 350px qu’on centre horizontalement (si vous voulez voir d’autres méthodes en css, c’est par ici :3) grâce à un margin: auto. Après, on utilise les deux id précédemment créés et on place l’un à gauche et l’autre à droite. Ici, sur ma capture les icônes font 48px et viennent du site iconmonstr. Après, je fais juste varier l’effet de l’opacité sur le hover du lien !

.actions {
	width: 350px;
	margin: auto;
	padding-top: 15px;
}
.actions #login-back {
	float: left;
	margin-left: 10px;
}
.actions #login-forget {
	float: right;
	margin-right: 10px;
}

.opacity {
	opacity:0.7; 
        filter: alpha(opacity = 70);
	-ms-filter: 'prodig:DXImageTransform.Microsoft.Alpha(Opacity=70)';
	-webkit-transition: opacity 0.4s ease-in-out;
	-moz-transition: opacity 0.4s ease-in-out;
	-o-transition: opacity 0.4s ease-in-out;
	transition: opacity 0.4s ease-in-out;
  }
.opacity:hover {
	opacity: 1; filter: alpha(opacity = 90);
	-ms-filter:'prodig:DXImageTransform.Microsoft.Alpha(Opacity=90)';
	cursor: pointer;
}

Ce qui nous donne le fameux résultat du début :

wordpress-login-laststep

« Sécuriser » la page de login

Si quelqu’un essaye d’accéder à votre administration et de se connecter, il doit posséder au moins, le nom de votre compte, ce qui est dommage sous wordpress, c’est qu’il vous affiche une erreur de ce type, si le nom d’utilisateur que vous avez utilisé est bon :

wordpress-login-fail

Grâce à ça, le potentiel hacker est déjà au fait de votre pseudo, il ne lui reste plus qu’à trouver le mot de passe. On peut facilement améliorer ça, en utilisant le hook login_errors de wordpress. Grâce à cet hook, on peut également modifier le message pour y rajouter ce que l’on veut comme la documentation le montre dans son exemple.

On va corriger cela, pour se faire on commence par détecter le type d’erreur, ici on s’intéresse lorsque l’utilisateur se trompe de mot de passe (‘incorrect_password’), dans ce cas, on affiche simplement « Mauvais identifiants » pas besoin de donner d’informations supplémentaires par contre on propose quand même de pouvoir changer de mot de passe.

add_filter('login_errors', function($error) {
	global $errors;
	$err_codes = $errors->get_error_codes();

	if(in_array( 'incorrect_password', $err_codes)) {
		$url = site_url();
		$error = "Mauvais identifiants ? <a href='".site_url()."/wp-login.php?action=lostpassword'>Mot de passe oublié ?</a>";
	}

	return $error;
});

Ce qui nous donne :

wordpress-login-correction

Et c’est tout pour cette partie sur la page de login de wordpress !

  • PHP
  • Wordpress
login page

Ludovic Vimont 21/09/201515/07/2022

Articles similaires

PHP : Créer ses devis au format PDF avec html2pdf

06/06/201515/07/2022Ludovic Vimont

PHP : Utiliser Curl pour effectuer des recherches automatiquement

18/05/201515/07/2022Ludovic Vimont

PHP : Initiation aux Regex (expressions régulières)

25/02/201515/07/2022Ludovic Vimont

PHP : Système automatique de backup pour vos bases de données

26/12/201415/07/2022Ludovic Vimont

Rechercher un article, un sujet ou un mot clé

Aidez-moi à améliorer borntocode

améliorer borntocode happy
Si vous appréciez mes articles et avez un peu de temps devant vous, pourquoi ne pas m'aider à améliorer le site en remplissant ce formulaire.

Catégories

  • Android (16)
  • Bash (4)
  • C (1)
  • C++ (2)
  • Css (4)
  • Excel (1)
  • Fun (1)
  • GIT (2)
  • Google (2)
  • Graphisme (2)
  • iOS (2)
  • Java (11)
  • Javascript (7)
  • Kotlin (2)
  • Lamp (1)
  • Latex (10)
  • Linux (19)
  • Mac (2)
  • Markdown (1)
  • Navigateur (1)
  • PHP (7)
  • Qt (2)
  • Raspberry pi (4)
  • Sql (1)
  • Sublime Text (3)
  • Swing (2)
  • Vim (1)
  • Webdesign (1)
  • WebGL (1)
  • Windows (2)
  • Wordpress (2)
  • Xbmc (2)
Retourner en haut