Ce tutoriel vous apprendra comment mettre en place une zone de connexion dans une page WordPress vous permettant d’inciter vos visiteurs à s’inscrire sur votre site / blog.
Pour vous connecter à l’administration WordPress, il est commode de passer par l’une des 2 URLs suivantes :
- https://example.com/wp-admin/
- https://example.com/wp-login.php
Cette méthode de connexion n’est pourtant guère très pratique si vous autorisez l’enregistrement de nouveaux utilisateurs. En effet, à moins de connaître WordPress, il vous faudra indiquer l’URL correspondante à chacun des nouveaux inscrits.
Le plus simple reste donc d’insérer un formulaire de connexion dans une page dédiée, par exemple « Connexion » ou « Espace membre ». Trois méthodes s’offrent à vous :
- le bloc Connexion / déconnexion, sans code, avec n’importe quel thème ;
- un modèle de page avec la fonction
wp_login_form(), pour un contrôle total avec un thème classique ; - un formulaire HTML, à personnaliser librement.
Méthode n°1 : le bloc Connexion / déconnexion
- Créez une page (Pages > Ajouter une page), par exemple « Connexion ».
- Insérez le bloc Connexion / déconnexion.
- Dans les réglages du bloc, activez Afficher la connexion sous forme d’un formulaire.
- Laissez Rediriger vers l’URL actuelle activé pour que le lien de déconnexion ramène sur cette page, ou désactivez-le. Le formulaire, lui, renvoie toujours le visiteur sur la page une fois connecté.
- Publiez la page.
Le formulaire utilise la fonction native de WordPress : il gère l’identifiant ou l’adresse e-mail, le mot de passe et la case « Se souvenir de moi ». Une fois le visiteur connecté, le bloc affiche un lien Déconnexion. Avec un thème basé sur les blocs, le bouton reprend automatiquement le style des boutons de votre thème.
Méthode n°2 : un modèle de page avec wp_login_form()
Cette méthode concerne les thèmes classiques, qui contiennent un fichier page.php. Travaillez de préférence dans un thème enfant.
A l’aide d’un client FTP, rendez-vous dans /wp-content/themes/NOM_DU_THEME/ puis dupliquez le fichier page.php.
Renommez la copie par un titre évocateur tel que template-login.php.
Ouvrez ce dernier puis référencez-le en tant que modèle de page en ajoutant les lignes de code suivante en début de fichier :
Insertion du formulaire de connexion
Localisez ensuite la ligne contenant :
Cette ligne affiche le contenu saisi dans l’éditeur de la page.
Cas n°1 – Utilisation d’une commande PHP
Juste au-dessus ou en dessous, à votre convenance, placez le code suivant. Il affiche le formulaire aux visiteurs, un lien de déconnexion aux utilisateurs déjà connectés, ainsi qu’un lien vers la récupération du mot de passe et, si les inscriptions sont ouvertes, un lien de création de compte :
Les textes affichés passent par les fonctions de traduction de WordPress : remplacez le domaine wpchannel par celui de votre thème, ou traduisez directement les chaînes.
Enregistrez le fichier sur votre serveur, puis connectez-vous à l’administration de WordPress. Dans Pages > Ajouter une page, créez votre page. Dans le panneau Page, cliquez sur la ligne Modèle et choisissez Zone de connexion.
N’oubliez pas de cliquer sur Publier, puis visualisez le résultat.
La fonction wp_login_form() accepte de nombreux paramètres (libellés, identifiants des champs, case « Se souvenir de moi », redirection…), détaillés dans la documentation officielle de wp_login_form().
Cas n°2 – Utilisation d’un formulaire HTML
Cette méthode a le gros avantage de ne contenir aucune ligne de PHP. Vous pouvez donc l’insérer directement dans une page ou un article, avec le bloc HTML personnalisé. Seuls les comptes autorisés à publier du HTML non filtré (administrateurs et éditeurs d’un site simple) peuvent l’enregistrer : pour les autres rôles, WordPress retire les balises <form> et <input>.
Le second avantage de coder en dur – au lieu de passer par des arguments à insérer dans la commande PHP (ce qui n’est pas évident quand on débute), celle-ci est nettement plus facile à personnaliser. Il s’agit ni plus ni moins que d’un formulaire on ne peut plus standard en HTML.
Englober le tout d’une balise <div>, saupoudrez le tout de CSS et vous obtiendrez un résultat selon vos besoins. N’oubliez pas non plus de remplacer les URLs par le domaine de votre site.
Si vous avez modifié l’adresse de wp-login.php (avec une extension comme WPS Hide Login), remplacez-la aussi dans l’attribut action et dans le lien « Mot de passe oublié ? ». Les méthodes n°1 et n°2 s’adaptent automatiquement.
Bravo ! Vous disposez à présent d’une zone de connexion personnalisée, facile à repositionner sur votre site. Les plus aventureux l’afficheront dans une fenêtre en surimpression ; les autres pourront passer par une extension dédiée comme Login With Ajax.
Questions fréquentes
Comment rediriger l’utilisateur vers une page précise après la connexion ?
Avec wp_login_form(), renseignez le paramètre redirect (voir le code ci-dessus). Le bloc Connexion / déconnexion, lui, ramène toujours le visiteur sur la page du formulaire.
Comment permettre aux visiteurs de créer un compte ?
Cochez Tout le monde peut s’inscrire dans Réglages > Général, à la ligne Inscription, et choisissez le rôle attribué par défaut. Le lien d’inscription s’obtient ensuite avec wp_registration_url().
Mon formulaire ne fonctionne plus après avoir changé l’URL de connexion : pourquoi ?
Un formulaire HTML envoie les données vers wp-login.php, que certaines extensions de sécurité bloquent (voir comment modifier l’URL de connexion à l’administration WordPress). Utilisez le bloc ou wp_login_form(), qui reprennent automatiquement la nouvelle adresse, ou modifiez l’attribut action de votre formulaire.
Ce formulaire est la première brique pour créer un espace réservé aux membres.
82 réponses
Bonjour,
Je souhaiterais créer un formulaire d’accès à une démo composée d’un dashboard importé via FTP dans wordpress, avec un mot de passe provisoire unique et modifiable, communiqué à des clients. Ce n’est ni un login de membres, ni un plugin de type « Temporary Login Without Password » d’accès au panel WP admin.
Merci de votre concours
Besoin spécifique, difficile de répondre ici par commentaire.
Merci pour ces informations en wordpress plugins
Très bon tutoriel.
Apparemment, il ne fonctionne pas avec les version 5. de wordpress
Bonjour,
SUper tuto merci,
en revanche j’ai une question, comment faire le lien entre le formulaire et l’espace membre woo commerce ou woo commerce membership.
En effet quand un membre s’identifie, il faut que woo commerce membership sache de qui il s’agit afin que l’utilisateur puisse acceder à la page ‘mon compte’ et voir ses infos perso par exemple.
merci
La fonction wp_login_form accepte un paramètre de redirection, il est donc possible de renvoyer l’utilisateur vers une page spécifique. Toutefois, dans le cadre d’un e-commerce, je préconise d’utiliser les pages de connexion proposées par WooCommerce tout simplement.
BOnjour, tout d’abord merci énormément pour ce tuto qui marche à merveille. Comment puis-je intégrer sur la même page de login ou sur une autre page une fonction de logout
Bonjour, vous pouvez utiliser la fonction
wp_logout_urlSalut, avant ou après le
get_template_part()par exemple.Ok, merciii pour votre aide
Salut, voici mon fichier template-login.php, et je ne sais pas où mettre le
<?php
if (have_posts()) {
/* Start the Loop */
while (have_posts()) {
the_post();
get_template_part('content', 'page');
/**/
}
} else {
theme_404_content();
}
?>
Merciii
Bonjour, mon code php est beaucoup plus court donc je n’est pas du tout les même ligne que vous comment faire ?
Je fais suite à votre e-mail. Je ne comprends pas votre problème, pouvez-vous être plus précis ?
Bonjour,
Comment créer des identifiants après avoir utilisé la méthode numéro 2 ?
Merci d’avance 🙂
Le tutoriel ne traite pas de la gestion des inscriptions qui un sujet plus vaste. Il existe de nombreuses solutions en fonction des besoins.
Bonjour,
ce tutoriel est super mais il y a un petit problème…
Si on saisit un mauvais identifiant ou mot de passe, on est redirigé vers la page de connexion wp-login et ça, c’est pas cool…
Y a-t-il un moyen de changer la page de redirection en cas de mauvais login/mdp ?
merci d’avance 😀
Bonjour,
J’ai actuellement le même problème avez vous pu trouver une solution ?
Merci 🙂
Bonjour,
ça marche très bien, par contre je galère un peu pour faire une page de connexion à un webservice dans lequel les memebres qui vont s’indentifier sur mon site sont stocké ! !
Est-que vous avez une solution à mon problème?
Merci d’avance,
Désolé aucune idée, je n’ai pas en mémoire ce type d’intégration. Par contre, ça doit largement pouvoir se développer ! 🙂
bonjour,
désolée d’avance, ma question est peu être très bête mais je débute…
Comment fait on pour soupoudrer en css?
J’ai utilisé un terme culinaire ici… il s’agit d’ajouter quelques règles CSS pour gérer au mieux les styles. Cela nécessite des notions par contre.
Bonjour,
Peut-on avoir plusieurs login et mot de passe valides ?
Comment règle -t’on les login et mot de passe autorisés à se connecter ?
Merci
C’est directement fonction des comptes utilisateurs créés en back-office.
merci!
et il y a déjà un tuto là dessus sur le site ?
bonjour comment on fait pour que les personne puisse s’inscrire. est ce que il aurait un tutoriel (en vidéo) s.v.p?
Vous devez autoriser les inscriptions dans les réglages généraux de WordPress pour ouvrir les inscriptions. Ce tutoriel ne traite pas de la création d’un formulaire d’inscription sur mesure par contre.
Bonjour, je souhaiterai savoir quel est ce logiciel que vous utilisez dans la vidéo ?
Je débute depuis peu dans le développement de site web.
Voilà, le code du login se trouve en ligne 134 ! (http://pastebin.com/AsfVVk2K) Merci beaucoup pour votre aide 😉
Dans WordPress 3.9, Quand l’on rentre des informations correctes et que l’on clique sur « Se connecter », on est redirigé vers la page de connexion de WordPress…
Bizarre, y a pas de raisons. Faites un pastebin que je jette un oeil rapidement. 😉
Bonjour à vous j’ai une question utilisation d’une commande PHP le texte à copier nous pouvons le coller ou nous voulons ?
Oui en principe.
bonjour j’ai utilisé la 1 er methode avec code php et ca marche mais j’ai pas su comment ajouter un boutton d’inscription
Bonjour j’ai essayé la premiere methode mais je trouve pas le code php comme dans le tuto il est plus court et je trouve pas la commande
donc si vous pouvez me donnez tous le code et merci
bonjour le code php de mon fichier page.php de ce théme n’est pas le meme il est beaucoup plus court
et je ne trouve pas la commande
donc si vous pouvez me donnez le code en entier et merci
Merci beaucoup pour ces explications qui m’ont permis de créer une page de connexion en toute simplicité (j’ai choisi l’option 2 en y ajoutant un code register). Votre site est vraiment une mine d’information ! Bravo.
Merci ! 😎
Bonjour,
J’ai suivi la méthode PHP cependant, il n’implémente pas le formulaire revu avec le plugin Register Plus.
Comment faire ?
Par avance merci
Je ne pense pas que cela soit possible…
Bonjour,
est il possible d’ajouter un bouton de Déconnexion ??
MERCI 🙂
Merci pour cette super astuce !
Question : avec cette technique, si on saisit mal son formulaire, ou s’il comporte une erreur, on est redirigé sur la page classique de login, comment faire pour rester toujours sur la page de départ .
Même question pour l’enregistrement.
Merci et bravo !
Bonjour
Tu peux chercher des solutions du côté des extensions. La première, Sky Login Redirect (http://www.skyminds.net/wordpress-plugins/sky-login-redirect/), te permet de rester dans la page de départ après identification. La seconde, plus complète, ajoute les options connexion/déconnexion à la page de menus propre de Wordpres et permet de choisir la page de destination du visiteur une fois identifié.
J’ai oublié de dire que la seconde extension c’est Log in Logout Menu (http://boiteaweb.fr/plugin-log-in-logout-menu-3337.html), de Julio Potier. Mes excuses.
Il faudrait mettre en place des redirections ou essayer d’indiquer l’URL de la page abritant le formulaire de connexion dans le code du formulaire dans le
action. Sinon, passez par un plugin comme Ajax Login.Dans la version actuelle de Twenty_Ten, page.php utilise la fonction get_template_part qui appelle loop-page.php. En conséquence je pense que loop-page doit également être dupliqué pour y intégrer les modifications préconisées par ce tuto.
Si c’est le cas, est-il possible de faire évoluer votre tutoriel qui est excellent.
Merci
Avec la première méthode, l’astuce est ici : http://codex.wordpress.org/Function_Reference/wp_login_url
Avec la seconde, je pense que tu dois modifier l’URL de l’antépénultième ligne ayant name=redirect_to.
Je vais étudier et mettre à la preuve les deux solutions.
Merci de ta réponse, rapide et précise.
La solution finalement est très simple, grâce à l’extension Sky Login Redirect, oeuvre d’un Français, il me semble. C’est simple. Les abonnés d’un site peuvent visiter une page, laquelle demande de se connecter au site. Après identification, ils ne sont pas redirigés vers la page d’accueil. Ils restent sur la page qui les intéressait, qui est déjà accessible.
J’utilise la deuxième solution proposée par Aurélien, le formulaire, dans un widget. Pour que l’extension Sky Login Redirect fonctionne, il suffit de supprimer l’avant-dernière ligne du formulaire ( ).
Et ça marche
Magnifique suggestion. Très utile. Une question seulement. J’utilise la version « formulaire HTML » dans un widget (comme le dire en français ?) que l’affiche partout aux usagers non identifiés. Mais elle renvoie toujours l’usager que vient de s’identifier vers la page d’accueil. Est ce qu’il serait possible qu’après identification le visiteur reste dans la page de départ ?
D’avance, merci beaucoup.
Bonjour
Rien ? Personne pour me faire une suggestion ?
Pourtant, je crois que la question peut intéresser à pas mal d’utilisateurs de WordPress. Qu’est ce qu’il faut faire dans le formulaire HTML pour que le visiteur qui vient de se connecter reste sur la page ?
Merci d’avance et longue vie à ce site magnifique où l’on peut toujours apprendre beaucoup de choses.
Salut Aralar.
En passant par l’extension « Peter’s Login Redirect », tu peux définir une page de redirection très facilement en fonction du pseudo ou du statut.
Excellente sugestion. Je n’en connaissais pas cette extension, je vais la mettre à preuve. Merci de votre réponse.
Je constate, une fois de plus, le sens de l’entraide des lecteurs-contributeurs de WordPress channel. C’est le site où il faut absolument être !!!
merci bien pour ta réponse plus que rapide. Autre question, le site que je dois faire est réserve à certaines personne, il faudrait que je créé une page spécial login (ou il n’y a strictement rien d’autre sur la page que le log), comment puis-je faire? 🙁
Bonjour, je souhaite savoir si on peut accéder à un LDAP par le biai de cette zone de connexion?
ps : le formulaire serait uniquement pour s’identifier et non pour s’enregistrer.
Help me please.
Merci d’avance
Avec un plugin comme Simple LDAP Login je pense : http://wordpress.org/extend/plugins/simple-ldap-login/
Bonjour, tout d’abord merci et bravo sur ce site il m’est d’un très grand secours !
j’ai installé member access et login with ajax, tout fonctionne super bien, mais j’essaye d’ajouter 2 champs (nom et tél) dans login with ajax pour les inscriptions, ils apparaissent dans le formulaire d’inscription mais pas quand je reçois le mail d’indication d’un nouvel abonné, je me doute que c du php, ce serait top si vous pouviez m’aider ! merci beaucoup et à bientôt.Shiraz
Hum trop compliqué pour fournir une réponse ici…
php the_content
Ou est il ?
Bonjour, je ne trouve pas j’utilise le theme selecta version 1.1.2 et wordpress 3.3.2 merci de m’aider (urgent)
je ne trouve pas pardon
Bonjour et encore merci pour tout les tutorial 🙂 Cependant j’ai un petit problème quand on n’est pas connecter ont tombe sur l’erreur 404 et c’est assez gênant, je voudrait savoir si je pouvait pas rediriger les non membre vers une page d’inscription ou pouvoir marquer un petit texte comme quoi il faut être enregistrer pour accéder à la page ?
Merci d’avance !
Même si moi et la logique sa fais 2 j’ai trouvé la solution il suffit de cocher la case « Effectuer une redirection pour les non-membres. » dans member access 😉
Bonjour;
merci pour votre tuto
mais je voudrais savoir s’il est possible de faire les etapes d’authentification dans la meme page sans passer par wp-login.php
merci
Bonjour et merci beaucoup pour ce tuto.
J’ai créé mon formulaire avec la commande PHP (cas n°1).
En cas de saisie erronée, l’utilisateur est redirigé sur la page de connexion standard WordPress.
Comment rester sur mon formulaire.
As-tu essayé d’ajouter un argument de redirection comme indiqué sur le lien vers le codex : http://codex.wordpress.org/Function_Reference/wp_login_form ?
Bonjour,
Merci pour ce tuto, avez vous le code équivalent pour integrer le formulaire d’inscription directement dans la page?
Je supose qu’il suffit de suivre le tuto mais de remplacer par le code correspondant?
Merci
Directement dans une page en mode HTML ? Possible avec la seconde méthode, le PHP n’étant pas accepté sans passer par un plugin.
Je souhaite créer une page avec une zone d’inscription, quel est le mieux?
Bonjour,
Je vais utiliser le plugin Members Only. J’aimerais donc personnaliser ma page de connexion. J’ai obtenu un résultat intéressant mais je ne sais pas comment remplacer le lien textuel « Inscription » par une image.
Comment puis-je faire?
Je n’ai pas la réponse mais cela doit être faisable en cherchant un peu. Je propose des services premium, peux-être serais-tu intéressé ?
Combien serait-ce?
Contactes-moi directement via la page Contact. 😉
Bonjour,
la question a déjà été posté plus haut mais, étant très novice en internet, je n’y suis pas arrivé. Je chercher à faire un redirection après Logout de mon site. La redirection en Login fonctionne très bien avec Ajax Login. Apparemment il faut insérer une ligne de code, mais ou la mettre? Quelles sont les manipulations?
Je vous remercie d’avance.
Cette ligne de code doit être insérée là où le lien de redirection doit être affiché sur le site : header.php dans l’en-tête, footer.php dans le pied de page, etc. Effectivement, cette opération nécessite des connaissances de bases en HTML notamment.
Bonjour à vous !!!
Merci pour ce tuto très intéressant !!
j’ai juste une question. il est possible d’avoir un bouton « Register » pour donner la possibilité au utilisateur de se créer un compte ?
comme le fait Ajax-login !
Merci
Oui bien sûr avec la commande wp_register : http://codex.wordpress.org/Function_Reference/wp_register 😉
Merci bcp !
Coucou,
JOYEUX NOEL et Bonnes Fêtes 🙂
Merci Aurélien pour cette astuce, vraiment génial !
oui mais comment fait-tu pour le mettre au dessus du site entier (comme twitter)
merci
Il me semble que des plugins le font mais il existe ce tutoriel de chez Nettuts : http://net.tutsplus.com/tutorials/javascript-ajax/build-a-top-panel-with-jquery/