Styler la page de login de WordPress

mardi 17 novembre 2009, par Dino

Il existe des plugins qui permettent de modifier l’apparence de la page de login de WordPress... cette opération peut tout aussi bien être réalisée directement (et une fois pour toute) au niveau de son thème WordPress.

Mike Jolley [1] propose la méthode suivante qui permet d’ajouter une feuille de style à notre page de login, de modifier le logo par défaut de WordPress (et le lien vers wordpress.org), et d’insérer un texte de son choix.

Pour cela il s’agit d’insérer de simples fonctions PHP dans le fichier functions.php de son thème.

  1. function custom_loginpage_logo_link($url)
  2. {
  3.      // Return a url; in this case the homepage url of wordpress
  4.      return get_bloginfo('wpurl');
  5. }
  6. function custom_loginpage_logo_title($message)
  7. {
  8.      // Return title text for the logo to replace 'wordpress'; in this case, the blog name.
  9.      return get_bloginfo('name');
  10. }
  11. function custom_loginpage_head()
  12. {
  13.      /* Add a stylesheet to the login page; add your styling in here, for example to change the logo use something like:
  14.      #login h1 a {
  15.           background:url(images/logo.jpg) no-repeat top;
  16.      }
  17.      */
  18.      $stylesheet_uri = get_bloginfo('template_url')."/css/login.css";
  19.      echo '<link rel="stylesheet" href="'.$stylesheet_uri.'" type="text/css" media="screen" />';
  20. }
  21. // Hook in
  22. add_filter("login_headerurl","custom_loginpage_logo_link");
  23. add_filter("login_headertitle","custom_loginpage_logo_title");
  24. add_action("login_head","custom_loginpage_head");

Comment cela fonctionne-t-il ?

Mike Jolley utilise tout simplement ici le mécanisme assez puissant des hooks [2] de WordPress pour surcharger les valeurs par défaut du script.

En d’autres termes les différentes fonctions native de WordPress qui gèrent le contenu de la page de login (login_headerurl, login_headertitle, login_head) sont remplacées (ou surchargées si l’on préfère) par celles que nous avons défini (custom_loginpage_logo_link, custom_loginpage_logo_title, custom_loginpage_head) dans notre fichier functions.php.

Simple... Non ?

Lire aussi

12 Messages de forum

Répondre à cet article