Como exibir o formulário de registro do usuário do WordPress no front end do site?
-
-
Melhor solução queencontrei é [temameuplugin de login] (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
-
Este [artigo] (http://digwp.com/2010/12/login-register-password-code/)fornece umgrandetutorial sobre como criar seusprópriosformulários de senha do seufrontend/login/restauração.ou se vocêestiverprocurandopor umplugin,usei-os antese podemos recomendá-los: - [AJAX Login/Register] (http://wordpress.org/extend/plugins/ajax-loginregister/) - [Login com 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 cosmolabspostam um ótimo [tutorial] (http://www.cozmoslabs.com/2010/05/31/wordpress-user-registration-template-and-custom-user-profile-fields/) com arquivos de origem queDê a você a capacidade de construir umperfil de usuáriofront-end,logine modelos de registro.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 respostas
- votos
-
- 2012-01-30
tldr; Coloque o seguinteformuláriono seutema,onome
ID
Atributos sãoimportantes:& lt; Form Ação="& lt;? PHP ECHO Site_url ('wp-login.php? action=registrar','login_post')? >" Método="Post" & GT; & lt;entradatipo="texto"nome="user_login" value="username"id="user_login" classe="entrada"/> & lt;inputtype="text"name="user_email" valor="E-mail" ID="user_eleil" classe="entrada"/> & lt;?php do_action ('Register_Form');? > & lt;entradatipo="enviar" valor="registrar"id="register"/> & lt;/form >
Euencontrei umexcelente artigo de TutsPlusem Fazendo umformulário de registro de WordPressextravagante apartir do zero . Issogastamuito do seutemponoestilo,mastem a seguinte seçãobastante simples sobre o código WordPressnecessário:
.
etapa 4. WordPress
Não hánadaextravagante aqui; Nós sóprecisamos de dois snippets do WordPress, escondido dentro do arquivo wp-login.php.
Oprimeirotrecho:
& lt;? Phpecho site_url ('wp-login.php? action=registrar','login_post')? >
e:
& lt;?php do_action ('registrador_form');? >
edit: Adicionei omínimoextra do artigoparaexplicar onde colocar ostrechos de código acima - é apenas umformuláriopara queelepossairem qualquermodelo depágina oubarra lateral oufazer um shortcodefora disso. A seçãoimportante é oformulário
.
O códigofinal deve ser assim:
& Lt; Div Style="Display: Nenhum" > & lt;! - Registro - & GT; & lt; divid="registro-form" > & lt; div class="title" > & lt; h1 > registre sua conta & lt;/h1 > & lt; span >inscreva-se conoscoe aproveite! & lt;/span > & lt;/div > & lt;formar ação="& lt;?phpecho site_url ('wp-login.php? action=registrar','login_post')? >" Método="Post" & GT; & lt;entradatipo="texto"nome="user_login" value="username"id="user_login" classe="entrada"/> & lt;inputtype="text"name="user_email" valor="E-mail" ID="user_eleil" classe="entrada"/> & lt;?php do_action ('Register_Form');? > & lt;entradatipo="enviar" valor="registrar"id="register"/> & lt; hr/> & lt;p class="declaração" > uma senha seráenviadapore-mailpara você. & lt;/p > & lt;/form > & lt;/div > & lt;/div > & lt;! -/Registro - & GT;
Porfavor,note que é realmenteimportante e necessário,parater
user_login
como umnomeid
atributoem suaentrada detexto; Omesmo é verdadepara aentrada deemail. Caso contrário,nãofuncionará.e comisso,terminamos!
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!
-
Ótima solução!Simplese eficiente.Mas onde você colocaessestrechos?Em umabarra lateral?Estaponta costuraparatrabalhar apenas com umformulário deinscrição 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
-
Obrigado @fabienquatravaux,atualizei a respostaparaincluir a última seção do artigo.Não deve havernecessidade de umformulário Ajax - é apenas umformulário depostagem queenviapara apágina `WP-Login.php? Ação=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
isto Artigo Fornece umtutorial Greate sobre como criar seupróprio registro defrontend/login/restaurarformulários de senha.
ou se vocêestiverprocurandopor umplugin,eu useiestes antese podemos recomendá-los:
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
Eufiz um site há algumtempo queestavaexibindo umformulário deinscriçãopersonalizadono lado dafrente. Este sitenão émais vivo,mas aquiestão algumas screenshots.
Aquiestão asetapas que segui:
1) Ativar apossibilidade detodos os visitantes solicitarem umanova conta via configurações> Opção de associaçãogeral. Apágina de registro agora apareceno URL/WP-Login.php?action=Register
2) Personalize oformulário deinscriçãopara que sejaparecido com ofront-end do seu site. Isso émais complicadoe depende dotema que vocêestá usando.
Aquiestá umexemplo comtwenththirteen:
// 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 }
Em seguida,modifique otheme Stylesheetparafazer oformulário aparecer como quiser.
3) Vocêpodemodificar aindamais oformulário ajustando asmensagensexibidas:
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) Se vocêprecisar de umformulário de registrofront-end,vocêprovavelmentenão quiser que os usuários registrados consulte oback-end quandoelesefetuam login.
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(); }
Hámuitasetapas,mas o resultadoestá aqui!
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
Maneiramaisfácil: use umafunção WordPress chamada
wp_login_form()
( codice aqui ).Vocêpodefazer seuprópriopluginpara que vocêpossa usar um shortcodeem suaspáginas:
<?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>'; }
Tudo que vocêprecisafazer éestilizar seuformulárionofrontend.
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
Se vocêestiver aberto ao uso deplugins,eu usei o complemento de registro do usuárioparaformulários degravidade antes,funcionoumuitobem:
http://www.gravityforms.com/add-ons/user-registist/
Editar: Eupercebo queestanão é uma soluçãomuito detalhada,masfazexatamente o que vocêprecisae é umaboa solução.
Editar: Paraexpandir aminha resposta Além disso,o complemento de registro do usuárioparaformulários degravidadepermitemapeartodos os camposem umformulário criado usandoformulários degravidade,para camposespecíficos do usuário. Porexemplo,vocêpode criar umformulário com oprimeironome,sobrenome,e-mail,site,senha. Após a submissão,o add-onmapearáessasentradasnos campos do usuário relevantes.
Outragrande coisa sobreisso,é que vocêpode adicionar qualquer usuário registradoem umafila de aprovação. Suas contas de usuários só seriam criadas uma vez aprovadasnoback-endpor um administrador.
Se o link acima seinterrompe,apenas o site do Google "Registro de usuário adicionarparaformulários degravidade"
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"
-
Você leunotas @kaier adicionado àpergunta (negritomina): * "Estamosprocurando ** respostas longas quefornecem algumaexplicaçãoe contexto **. Não apenas dê uma resposta de uma linha;expliquepor que sua respostaestá certo,idealmente com citações. Respostas quenãoincluemexplicaçõespodem ser removidas "*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
-
Eutenho,mas senti que o add-on ainda vale apenamencionar,pois o OPnãomenciona anecessidade de codificarpersonalizado.Felizpormovê-lopara um comentário se você acha que énecessárioI 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
-
Eunão sou ummod,entãonãopossomoverpara comentar sua resposta.Eu sóposso votar,maseunãofaçoissoporqueeu acho que o seu link contéminformações úteis,noentanto,a resposta somente de linknão é útil,mesmoporqueesse linkpode serfacilmente alteradoe,portanto,sua respostatrazpara um 404.Tente denunciar aqui código relevantee explicar o Waht que o códigofaz,então sua respostaestábem,eu acho.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,concedi a recompensapara uma resposta _real_ queinclui código.Se você quer uma recompensa adicional,rasgue oplugine mostre-nosexatamente o queestáfazendo.Obrigado.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
-
Oi Kaiser,eunão sou depois da recompensa,só queria compartilharmeu conhecimento doplugin!Hi Kaiser, I'm not after the bounty, just wanted to share my knowledge of the plugin!
- 0
- 2014-03-19
- James Kemp
Comoexibir oformulário de registro do usuário do WordPress (oformulário que apareceem "www.mywebsite.com/wp-register.php"nafrente domeublog?
personalizei oformulário deinscrição.Masnão sei como chamaresseformulárionapáginafrontend.Qualquer suporte será realmentegrande ajuda.
Agradecemos antecipadamente.:)