Comment afficher le formulaire d'inscription de l'utilisateur WordPress en face avant du site Web?
-
-
Lameilleure solution quej'aitrouvéeest [Theme My Loginplugin] (http://wordpress.org/extend/plugins/theme-my-login/).Best solution i found is [Theme My Login plugin](http://wordpress.org/extend/plugins/theme-my-login/).
- 0
- 2011-02-24
- wyrfel
-
cet [Article] (http://digwp.com/2010/12/login-register-password-code/)fournit unexcellenttutoriel sur lafaçon de créer vospropresformulaires demot depasse d'enregistrement/connexion/restaurationfrontend.ou si vous cherchez unplugin,je les ai déjà utiliséset jepeux les recommander: - [Ajax Login/Register] (http://wordpress.org/extend/plugins/ajax-loginregister/) - [Login With Ajax] (http://wordpress.org/extend/plugins/login-with-ajax/)this [Article](http://digwp.com/2010/12/login-register-password-code/) provides a greate tutorial on how to create you own frontend register/login/restore password forms. or if you are looking for a plugin then i've used these before and can recomend them: - [Ajax Login/Register](http://wordpress.org/extend/plugins/ajax-loginregister/) - [Login With Ajax](http://wordpress.org/extend/plugins/login-with-ajax/)
- 0
- 2011-02-24
- Bainternet
-
Cristian de Cosmolabs apublié unexcellent [tutoriel] (http://www.cozmoslabs.com/2010/05/31/wordpress-user-registration-template-and-custom-user-profile-fields/) avec desfichiers source quivous donne lapossibilité de créer unprofil utilisateurfrontal,desmodèles de connexionet d'enregistrement.Cristian from Cosmolabs have post a great [tutorial](http://www.cozmoslabs.com/2010/05/31/wordpress-user-registration-template-and-custom-user-profile-fields/) with source files that give you the ability to build a front-end User Profile, Login and Register templates.
- 0
- 2011-02-24
- Philip
-
5 réponses
- votes
-
- 2012-01-30
TLDR; Mettez leformulaire suivant dans votrethème,les attributs
name
etid
sontimportants:& lt;form action="& lt;?phpecho site_url ('wp-login.php? action=register','login_post')? >"method="publier" > & lt;inputtype="text"name="user_login" value="Username"id="user_login" class="input"/> & lt;inputtype="text"name="user_email" value="E-Mail"id="user_email" class="input"/> & lt;?php do_action ('formulaire_enregistrement');? > & lt;inputtype="submit" value="Register"id="register"/> & lt;/form >
J'aitrouvé unexcellent article Tutsplus sur Créer unformulaire d'inscription Wordpress àpartir de zéro . Celapassebeaucoup detemps à styliser leformulaire,mais a la section assez simple suivante sur le code wordpress requis:
Étape 4. WordPress
Iln'y a rien d'extraordinaireici;nousn'avonsbesoin que de deuxextraits WordPress, caché dans lefichier wp-login.php.
Lepremierextrait:
& lt;?phpecho site_url ('wp-login.php? action=register','login_post')? >
Et:
& lt;?php do_action ('register_form');? >
Modifier: j'ai ajouté le dernier élément de l'articlepourexpliquer oùplacer lesextraits de code ci-dessus -ilne s'agit que d'unformulairepour qu'ilpuisse êtreplacé dansn'importe quelmodèle depage oubarre latérale ou créer un shortcode hors de celui-ci. La sectionimportanteest le
formulaire
qui contient lesextraits ci-dessuset les champs obligatoiresimportants.Le codefinal devrait ressembler à ceci:
& lt; div style="affichage: aucun" > & lt;! - Inscription - > & lt; divid="formulaire-registre" > & lt; div class="titre" > & lt; h1 > Enregistrez votre compte & lt;/h1 > & lt; span > Inscrivez-vous avecnouset profitez-en! & lt;/span > & lt;/div > & lt;form action="& lt;?phpecho site_url ('wp-login.php? action=register','login_post')? >"method="publier" > & lt;inputtype="text"name="user_login" value="Username"id="user_login" class="input"/> & lt;inputtype="text"name="user_email" value="E-Mail"id="user_email" class="input"/> & lt;?php do_action ('formulaire_enregistrement');? > & lt;inputtype="soumettre" value="Register"id="register"/> & lt; hr/> & lt;p class="statement" > Unmot depasse vous seraenvoyépare-mail. & lt;/p > & lt;/form > & lt;/div > & lt;/div > & lt;! -/Inscription - >
Veuilleznoter qu'ilest vraimentimportant ,et nécessaire,d'avoir
user_login
commenom
et commeid
attribut dans votre saisie detexte; lamême choseest vraiepour l'entrée d'e-mail. Sinon,celane fonctionnerapas.Et avec ça,c'estfini!
TLDR; Put the following form into your theme, the
name
andid
attributes are important:<form action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post"> <input type="text" name="user_login" value="Username" id="user_login" class="input" /> <input type="text" name="user_email" value="E-Mail" id="user_email" class="input" /> <?php do_action('register_form'); ?> <input type="submit" value="Register" id="register" /> </form>
I found an excellent Tutsplus article on Making a fancy Wordpress Register Form from scratch. This spends quite a lot of its time on styling the form, but has the following fairly simple section on the required wordpress code:
Step 4. WordPress
There is nothing fancy here; we only require two WordPress snippets, hidden within the wp-login.php file.
The first snippet:
<?php echo site_url('wp-login.php?action=register', 'login_post') ?>
And:
<?php do_action('register_form'); ?>
Edit: I've added the extra final bit from the article to explain where to put the above code snippets - its just a form so it can go in any page template or sidebar or make a shortcode out of it. The important section is the
form
which contains the above snippets and the important required fields.The final code should look like so:
<div style="display:none"> <!-- Registration --> <div id="register-form"> <div class="title"> <h1>Register your Account</h1> <span>Sign Up with us and Enjoy!</span> </div> <form action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post"> <input type="text" name="user_login" value="Username" id="user_login" class="input" /> <input type="text" name="user_email" value="E-Mail" id="user_email" class="input" /> <?php do_action('register_form'); ?> <input type="submit" value="Register" id="register" /> <hr /> <p class="statement">A password will be e-mailed to you.</p> </form> </div> </div><!-- /Registration -->
Please note that it's really important, and necessary, to have
user_login
as aname
and as anid
attribute in your text input; the same is true for the email input. Otherwise, it won't work.And with that, we're done!
-
Excellente solution!Simpleet efficace.Mais oùmettez-vous cesextraits?Dans unebarre latérale?Cette astuce semblene fonctionner qu'avec unformulaire d'inscription ajax.Great solution ! Simple and efficient. But where do you put those snippets ? In a sidebar ? This tip seams to only work with an ajax registration form.
- 0
- 2014-03-17
- Fabien Quatravaux
-
Merci @FabienQuatravaux,j'aimis àjour la réponsepourinclure la dernière section de l'article.Ilne devraitpas y avoirbesoin d'unformulaire AJAX - c'estjuste unformulaire POST qui se soumet à lapage `wp-login.php? Action=register`Thanks @FabienQuatravaux, I've updated the answer to include the last section of the article. There should be no need for an AJAX form - its just a POST form that submits to the `wp-login.php?action=register` page
- 1
- 2014-03-18
- icc97
-
- 2011-02-24
cet article fournit unexcellenttutoriel sur lafaçon de créer votrepropre registre/connexionfrontend/restaurer lesformulaires demot depasse.
ou si vous recherchez unplugin,je les ai déjà utiliséset jepeux les recommander:
this Article provides a greate tutorial on how to create you own frontend register/login/restore password forms.
or if you are looking for a plugin then i've used these before and can recomend them:
-
- 2014-03-12
J'ai créé un site Webil y a quelquetemps qui affichait unformulaire d'inscriptionpersonnalisé sur lefront-end. Ce siten'estplusen lignemais voici quelques captures d'écran.
Voici les étapes quej'ai suivies:
1) Activez lapossibilitépourtous les visiteurs de demander unnouveau compte via Paramètres> Général> Option d'adhésion. Lapage d'inscription apparaîtmaintenant à l'URL/wp-login.php?action=register
2) Personnalisez leformulaire d'inscription afin qu'il ressemble aufront-end de votre site. Ceciestplus délicatet dépend duthème que vous utilisez.
Voici unexemple avec vingt-treize:
// include theme scripts and styles on the login/registration page add_action('login_enqueue_scripts', 'twentythirteen_scripts_styles'); // remove admin style on the login/registration page add_filter( 'style_loader_tag', 'user16975_remove_admin_css', 10, 2); function user16975_remove_admin_css($tag, $handle){ if ( did_action('login_init') && ($handle == 'wp-admin' || $handle == 'buttons' || $handle == 'colors-fresh')) return ""; else return $tag; } // display front-end header and footer on the login/registration page add_action('login_footer', 'user16975_integrate_login'); function user16975_integrate_login(){ ?><div id="page" class="hfeed site"> <header id="masthead" class="site-header" role="banner"> <a class="home-link" href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"> <h1 class="site-title"><?php bloginfo( 'name' ); ?></h1> <h2 class="site-description"><?php bloginfo( 'description' ); ?></h2> </a> <div id="navbar" class="navbar"> <nav id="site-navigation" class="navigation main-navigation" role="navigation"> <h3 class="menu-toggle"><?php _e( 'Menu', 'twentythirteen' ); ?></h3> <a class="screen-reader-text skip-link" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentythirteen' ); ?>"><?php _e( 'Skip to content', 'twentythirteen' ); ?></a> <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?> <?php get_search_form(); ?> </nav><!-- #site-navigation --> </div><!-- #navbar --> </header><!-- #masthead --> <div id="main" class="site-main"> <?php get_footer(); ?> <script> // move the login form into the page main content area jQuery('#main').append(jQuery('#login')); </script> <?php }
Modifiezensuite lafeuille de style duthèmepour que leformulaire apparaisse comme vous le souhaitez.
3) Vouspouvezmodifier davantage leformulaireen peaufinant lesmessages affichés:
add_filter('login_message', 'user16975_login_message'); function user16975_login_message($message){ if(strpos($message, 'register') !== false){ $message = 'custom register message'; } else { $message = 'custom login message'; } return $message; } add_action('login_form', 'user16975_login_message2'); function user16975_login_message2(){ echo 'another custom login message'; } add_action('register_form', 'user16975_tweak_form'); function user16975_tweak_form(){ echo 'another custom register message'; }
4) Si vous avezbesoin d'unformulaire d'inscriptionfrontal,vousne voudrezprobablementpas que les utilisateursenregistrés voient lebackend lorsqu'ils se connectent.
add_filter('user_has_cap', 'user16975_refine_role', 10, 3); function user16975_refine_role($allcaps, $cap, $args){ global $pagenow; $user = wp_get_current_user(); if($user->ID != 0 && $user->roles[0] == 'subscriber' && is_admin()){ // deny access to WP backend $allcaps['read'] = false; } return $allcaps; } add_action('admin_page_access_denied', 'user16975_redirect_dashbord'); function user16975_redirect_dashbord(){ wp_redirect(home_url()); die(); }
Il y abeaucoup d'étapes,mais le résultatest là!
I made a website some time ago that was displaying a customized registration form on the front end side. This website is not live anymore but here are some screenshots.
Here are the steps I have followed:
1) Activate the possibility for all visitors to request a new account via Settings > General > Membership option. The registration page now appears at the URL /wp-login.php?action=register
2) Customize the registration form so that it looks like your site front-end. This is more tricky and depends on the theme you are using.
Here is an example with twentythirteen :
// include theme scripts and styles on the login/registration page add_action('login_enqueue_scripts', 'twentythirteen_scripts_styles'); // remove admin style on the login/registration page add_filter( 'style_loader_tag', 'user16975_remove_admin_css', 10, 2); function user16975_remove_admin_css($tag, $handle){ if ( did_action('login_init') && ($handle == 'wp-admin' || $handle == 'buttons' || $handle == 'colors-fresh')) return ""; else return $tag; } // display front-end header and footer on the login/registration page add_action('login_footer', 'user16975_integrate_login'); function user16975_integrate_login(){ ?><div id="page" class="hfeed site"> <header id="masthead" class="site-header" role="banner"> <a class="home-link" href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"> <h1 class="site-title"><?php bloginfo( 'name' ); ?></h1> <h2 class="site-description"><?php bloginfo( 'description' ); ?></h2> </a> <div id="navbar" class="navbar"> <nav id="site-navigation" class="navigation main-navigation" role="navigation"> <h3 class="menu-toggle"><?php _e( 'Menu', 'twentythirteen' ); ?></h3> <a class="screen-reader-text skip-link" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentythirteen' ); ?>"><?php _e( 'Skip to content', 'twentythirteen' ); ?></a> <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?> <?php get_search_form(); ?> </nav><!-- #site-navigation --> </div><!-- #navbar --> </header><!-- #masthead --> <div id="main" class="site-main"> <?php get_footer(); ?> <script> // move the login form into the page main content area jQuery('#main').append(jQuery('#login')); </script> <?php }
Then modify the theme stylesheet to make the form appear as you want.
3) You can further modify the form by tweaking the displayed messages :
add_filter('login_message', 'user16975_login_message'); function user16975_login_message($message){ if(strpos($message, 'register') !== false){ $message = 'custom register message'; } else { $message = 'custom login message'; } return $message; } add_action('login_form', 'user16975_login_message2'); function user16975_login_message2(){ echo 'another custom login message'; } add_action('register_form', 'user16975_tweak_form'); function user16975_tweak_form(){ echo 'another custom register message'; }
4) If you need a front-end registration form, you will probably don't want that registered users see the backend when they log-in.
add_filter('user_has_cap', 'user16975_refine_role', 10, 3); function user16975_refine_role($allcaps, $cap, $args){ global $pagenow; $user = wp_get_current_user(); if($user->ID != 0 && $user->roles[0] == 'subscriber' && is_admin()){ // deny access to WP backend $allcaps['read'] = false; } return $allcaps; } add_action('admin_page_access_denied', 'user16975_redirect_dashbord'); function user16975_redirect_dashbord(){ wp_redirect(home_url()); die(); }
There are lots of steps, but the result is here !
-
- 2014-08-26
Beaucoupplus simple: utilisez unefonction WordPress appelée
wp_login_form()
(page Codexici ).Vouspouvez créer votrepropreplugin afin depouvoir utiliser un shortcode dans l'une de vospages:
<?php /* Plugin Name: WP Login Form Shortcode Description: Use <code>[wp_login_form]</code> to show WordPress' login form. Version: 1.0 Author: WP-Buddy Author URI: http://wp-buddy.com License: GPLv2 or later */ add_action( 'init', 'wplfsc_add_shortcodes' ); function wplfsc_add_shortcodes() { add_shortcode( 'wp_login_form', 'wplfsc_shortcode' ); } function wplfsc_shortcode( $atts, $content, $name ) { $atts = shortcode_atts( array( 'redirect' => site_url( $_SERVER['REQUEST_URI'] ), 'form_id' => 'loginform', 'label_username' => __( 'Username' ), 'label_password' => __( 'Password' ), 'label_remember' => __( 'Remember Me' ), 'label_log_in' => __( 'Log In' ), 'id_username' => 'user_login', 'id_password' => 'user_pass', 'id_remember' => 'rememberme', 'id_submit' => 'wp-submit', 'remember' => false, 'value_username' => NULL, 'value_remember' => false ), $atts, $name ); // echo is always false $atts['echo'] = false; // make real boolean values $atts['remember'] = filter_var( $atts['remember'], FILTER_VALIDATE_BOOLEAN ); $atts['value_remember'] = filter_var( $atts['value_remember'], FILTER_VALIDATE_BOOLEAN ); return '<div class="cct-login-form">' . wp_login_form( $atts ) . '</div>'; }
Tout ce que vous avez àfaireest de styliser votreformulaire sur lefrontend.
Way easier: use a WordPress function called
wp_login_form()
(Codex page here).You can make your own plugin so that you can use a shortcode in on of your pages:
<?php /* Plugin Name: WP Login Form Shortcode Description: Use <code>[wp_login_form]</code> to show WordPress' login form. Version: 1.0 Author: WP-Buddy Author URI: http://wp-buddy.com License: GPLv2 or later */ add_action( 'init', 'wplfsc_add_shortcodes' ); function wplfsc_add_shortcodes() { add_shortcode( 'wp_login_form', 'wplfsc_shortcode' ); } function wplfsc_shortcode( $atts, $content, $name ) { $atts = shortcode_atts( array( 'redirect' => site_url( $_SERVER['REQUEST_URI'] ), 'form_id' => 'loginform', 'label_username' => __( 'Username' ), 'label_password' => __( 'Password' ), 'label_remember' => __( 'Remember Me' ), 'label_log_in' => __( 'Log In' ), 'id_username' => 'user_login', 'id_password' => 'user_pass', 'id_remember' => 'rememberme', 'id_submit' => 'wp-submit', 'remember' => false, 'value_username' => NULL, 'value_remember' => false ), $atts, $name ); // echo is always false $atts['echo'] = false; // make real boolean values $atts['remember'] = filter_var( $atts['remember'], FILTER_VALIDATE_BOOLEAN ); $atts['value_remember'] = filter_var( $atts['value_remember'], FILTER_VALIDATE_BOOLEAN ); return '<div class="cct-login-form">' . wp_login_form( $atts ) . '</div>'; }
All you have to do is to style your form on the frontend.
-
- 2014-03-18
Si vous êtes ouvert à l'utilisation deplugins,j'ai déjà utilisé lemodule complémentaire d'enregistrement des utilisateurspour Gravity Forms,celafonctionnaittrèsbien:
http://www.gravityforms.com/add-ons/user-registration/
Edit:je me rends compte que cen'estpas une solutiontrès détaillée,maisellefaitexactement ce dont vous avezbesoinet c'est unebonne solution.
Modifier: Pour développer davantagema réponse,lemodule complémentaire d'enregistrement des utilisateurspour lesformulairesgravitaires vouspermet demappertous les champs d'unformulaire créé à l'aide deformulairesgravitaires à des champs spécifiques à l'utilisateur. Parexemple,vouspouvez créer unformulaire avec Prénom,Nom,E-mail,Site Web,Mot depasse. Lors de la soumission,lemodule complémentairemappera cesentrées aux champs utilisateur appropriés.
Une autregrande chose à ce sujetest que vouspouvez ajoutertous les utilisateursenregistrés dans unefile d'attente d'approbation. Leurs comptes d'utilisateursne seraient créés qu'unefois approuvés dans lebackendpar un administrateur.
Si le lien ci-dessus se rompt,il suffit de Google "Ajout d'inscription des utilisateurspour Gravity Forms"
If you're open to the use of plugins, I've used the User Registration add-on for Gravity Forms before, it worked very well:
http://www.gravityforms.com/add-ons/user-registration/
Edit: I realise this isn't a very detailed solution, but it does exactly what you need and is a good solution.
Edit: To expand on my answer further, the User Registration add-on for gravity forms allows you to map any fields in a form created using Gravity Forms, to user-specific fields. For example, you can create a form with First Name, Last Name, Email, Website, Password. Upon submission, the add-on will map those inputs to the relevant user fields.
Another great thing about it, is you can add any registered users into an approval queue. Their user accounts would only be created once approved in the backend by an admin.
If the above link breaks, just Google "User Registration add on for Gravity Forms"
-
Avez-vous lu lesnotes @kaiser ajoutées à la question (lamienne engras): * "Nous recherchons ** des réponses longues quifournissent uneexplicationet un contexte **. Ne donnezpas simplement une réponseen une ligne;expliquezpourquoi votre réponseest correct,idéalement avec des citations. Les réponses quin'incluentpas d'explicationspeuvent être supprimées "*Have you read notes @kaiser added to the question (bold mine): *"We're looking for **long answers that provide some explanation and context**. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed"*
- 2
- 2014-03-18
- gmazzap
-
Je l'aifait,maisj'aipensé que lemodule complémentaireméritaittoujours d'êtrementionné,car l'OPne mentionnepas lanécessité de le coderpersonnalisé.Heureux de le déplacer vers un commentaire si vous lejugeznécessaireI have, but I felt the add-on is still worth mentioning, as the OP doesn't mention a need to custom code it. Happy to move it to a comment if you feel it's necessary
- 0
- 2014-03-18
- James Kemp
-
Jene suispas unmod,doncje nepeuxpasbougerpour commenter votre réponse.Jene peux que voter contre,maisje ne l'aipasfaitparce queje pense que votre lien contient desinformations utiles,cependant,la réponsepar lien uniquementn'estpas utile,mêmeparce que ce lienpeut êtrefacilementmodifiéet que votre réponse amène donc à un 404.Essayez de rapporterici le codepertinentet d'expliquer ce quefait ce code,alors votre réponseestbonne,je suppose.I'm not a mod, so I can't move to comment your answer. I can only vote down, but I haven't do that because I think that your link contain useful info, however, link-only answer is not useful, even because that link can be easily change and so your answer bring to a 404. Try to report here relevant code and explain waht that code does, then your answer is fine, I guess.
- 0
- 2014-03-18
- gmazzap
-
James,j'ai attribué laprime à une réponse _real_ qui comprend du code.Si vous voulez uneprime supplémentaire,veuillez déchirer lepluginet nousmontrerexactement ce qu'ilfait.Merci.James, I awarded the bounty to a _real_ answer that includes code. If you want an additional bounty, please tear the plugin apart and show us exactly what it's doing. Thanks.
- 0
- 2014-03-18
- kaiser
-
Salut Kaiser,je ne suispas après laprime,je voulaisjustepartagermes connaissances sur leplugin!Hi Kaiser, I'm not after the bounty, just wanted to share my knowledge of the plugin!
- 0
- 2014-03-19
- James Kemp
Comment afficher leformulaire d'inscription de l'utilisateur WordPress (leformulaire qui apparaît dans lapage "www.mywebsite.com/wp-register.php") dans lefront-end demonblog?
J'aipersonnalisé leformulaire d'inscription.Maisje ne saispas comment appeler ceformulaire dans lapage d'accueil.Tout support sera d'unegrande aide.
Merci d'avance.:)