ウェブサイトのフロントエンドにWordPressユーザー登録フォームを表示するにはどうすればよいですか?
-
-
私が見つけた最善の解決策は、[Theme My 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
-
この[記事](http://digwp.com/2010/12/login-register-password-code/)は、独自のフロントエンド登録/ログイン/パスワード復元フォームを作成する方法に関する優れたチュートリアルを提供します.または、プラグインを探している場合は、以前にこれらを使用したことがあり、推奨できます:-[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
-
CosmolabsのCristianが、すばらしい[チュートリアル](http://www.cozmoslabs.com/2010/05/31/wordpress-user-registration-template-and-custom-user-profile-fields/)を投稿しました.フロントエンドのユーザープロファイル、ログイン、登録テンプレートを作成する機能を提供します.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 回答
- 投票
-
- 2012-01-30
TLDR;次のフォームをテーマに入力します.
name
属性とid
属性は重要です:<form action="<?phpecho site_url( 'wp-login.php?action=register'、 'login_post')?>"method="post"> <inputtype="text"name="user_login" value="Username"id="user_login" class="input"/> <inputtype="text"name="user_email" value="E-Mail"id="user_email" class="input"/> <?php do_action( 'register_form');?> <inputtype="submit" value="Register"id="register"/> </form>
豪華なWordpress登録フォームを最初から作成する.これはフォームのスタイル設定にかなりの時間を費やしますが、必要なワードプレスコードに関する次のかなり単純なセクションがあります.
ステップ4.WordPress
ここには特別なものはありません.必要なWordPressスニペットは2つだけです. wp-login.phpファイル内に隠されています.
最初のスニペット:
<?phpecho site_url( 'wp-login.php?action=register'、 'login_post')?>
そして:
<?php do_action( 'register_form');?>
編集:上記のコードスニペットを配置する場所を説明するために、記事の最後のビットを追加しました.これは、任意のページテンプレートやサイドバーに配置したり、それからショートコード.重要なセクションは、上記のスニペットと重要な必須フィールドを含む
form
です.最終的なコードは次のようになります:
< div style="display:none"> <!-登録-> < divid="register-form"> < div class="title"> < h1>アカウントの登録</h1> < span>サインアップしてお楽しみください!</span> </div> <form action="<?phpecho site_url( 'wp-login.php?action=register'、 'login_post')?>"method="post"> <inputtype="text"name="user_login" value="Username"id="user_login" class="input"/> <inputtype="text"name="user_email" value="E-Mail"id="user_email" class="input"/> <?php do_action( 'register_form');?> <inputtype="submit" value="Register"id="register"/> < hr/> <p class="statement">パスワードがメールで送信されます.</p> </form> </div> </div><!-/登録->
user_login
をname
およびid
非常に重要であり、必要であることに注意してください. >テキスト入力の属性.同じことが電子メール入力にも当てはまります.そうしないと、機能しません.これで完了です!
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!
-
素晴らしい解決策!シンプルで効率的.しかし、それらのスニペットはどこに置きますか?サイドバーで?このヒントは、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
-
@FabienQuatravauxに感謝します.記事の最後のセクションを含めるように、回答を更新しました.AJAXフォームは必要ありません.`wp-login.php?action=register`ページに送信するPOSTフォームだけです.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
この
記事は、独自のフロントエンドレジスタ/ログインを作成する方法に関する優れたチュートリアルを提供します./パスワードフォームを復元します. またはプラグインをお探しの場合は、以前にこれらを使用したことがあるので、お勧めします:
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
少し前に、フロントエンド側にカスタマイズされた登録フォームを表示するWebサイトを作成しました.このウェブサイトはもう公開されていませんが、ここにいくつかのスクリーンショットがあります.
これが私が従ったステップです:
1)すべての訪問者が[設定]> [一般]> [メンバーシップ]オプションを使用して新しいアカウントをリクエストできるようにします.登録ページがURL/wp-login.php?action=register
に表示されます.2)サイトのフロントエンドのように見えるように登録フォームをカスタマイズします.これはもっとトリッキーで、使用しているテーマによって異なります.
これが21の例です:
// 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 }
次に、テーマのスタイルシートを変更して、フォームが希望どおりに表示されるようにします.
3)表示されるメッセージを微調整することで、フォームをさらに変更できます:
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)フロントエンド登録フォームが必要な場合は、登録ユーザーがログインしたときにバックエンドが表示されないようにする必要があります.
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(); }
多くのステップがありますが、結果はここにあります!
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
もっと簡単:
wp_login_form()
(コーデックスページはこちら)というWordPress関数を使用してください).独自のプラグインを作成して、ページでショートコードを使用できるようにすることができます:
<?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>'; }
必要なのは、フロントエンドでフォームのスタイルを設定することだけです.
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
プラグインを使用することに慣れている場合は、以前にGravity Formsのユーザー登録アドオンを使用しましたが、非常にうまく機能しました:
http://www.gravityforms.com/add-ons/user-registration/
編集:これはあまり詳細な解決策ではないことはわかっていますが、必要なことを正確に実行し、優れた解決策です.
編集:私の答えをさらに拡張するために、重力フォームのユーザー登録アドオンを使用すると、重力フォームを使用して作成されたフォームの任意のフィールドをユーザー固有のフィールドにマップできます.たとえば、名、姓、電子メール、Webサイト、パスワードを使用してフォームを作成できます.送信すると、アドオンはそれらの入力を関連するユーザーフィールドにマッピングします.
もう1つの優れた点は、登録済みのユーザーを承認キューに追加できることです.ユーザーアカウントは、管理者によってバックエンドで承認された場合にのみ作成されます.
上記のリンクが壊れた場合は、Googleの「GravityFormsのユーザー登録アドオン」
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"
-
質問に追加された@kaiserのメモを読んだことがありますか(太字の鉱山):*「**説明とコンテキストを提供する長い回答**を探しています.1行の回答だけでなく、回答の理由を説明してください.正しい、理想的には引用があります.説明が含まれていない回答は削除される場合があります」*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
-
私は持っていますが、OPはカスタムコーディングの必要性について言及していないので、アドオンはまだ言及する価値があると感じました.必要だと感じたら、コメントに移動してくださいI 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
-
私はモッズではないので、あなたの答えにコメントするために移動することはできません.投票することしかできませんが、あなたのリンクには有用な情報が含まれていると思うので、そうしませんでした.ただし、リンクは簡単に変更でき、回答が404になるため、リンクのみの回答は役に立ちません.ここで関連するコードを報告し、そのコードが何をするのかを説明してみてください.そうすれば、あなたの答えは大丈夫だと思います.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, 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
-
こんにちはカイザー、私は賞金を求めていません、プラグインの知識を共有したかっただけです!Hi Kaiser, I'm not after the bounty, just wanted to share my knowledge of the plugin!
- 0
- 2014-03-19
- James Kemp
ブログのフロントエンドにWordPressユーザー登録フォーム(「www.mywebsite.com/wp-register.php」ページに表示されるフォーム)を表示するにはどうすればよいですか?
登録フォームをカスタマイズしました.しかし、フロントエンドページでそのフォームを呼び出す方法がわかりません.どんなサポートも本当に大きな助けになります.
よろしくお願いします.:)