質問

WordPressサイトのフロントエンドにユーザー登録フォームを簡単に配置する簡単な方法を探しています。 wp_login_form()を使用してフロントエンドにログインフォームを配置しましたが、サインアップフォームで同じことを行う必要があります。

何か案は?

役に立ちましたか?

解決

Jeff Starrは、フロントエンドの登録、ログイン、パスワードの回復に関する素晴らしいチュートリアルを書きました
同様のアプローチをとる Onetrickponyによって提案されています。だから、これを彼の答えのフォローアップとして、またあなたがそれを成し遂げるのに役立つかもしれない別のリソースとしてとってください:
http://digwp.com/2010/12/login-register-password-code/

これで、これを自分でコーディングして私を信頼する方法の2つの例があります。それはそれほど難しくありません、そしてそれはあなたに与えます フリーダム, 柔軟性再利用可能性 プラグインが提供できないこと。

他のヒント

あなたがこれを自分で処理したい場合に備えて、ここに私が使用するものがあります:

add_action('template_redirect', 'register_a_user');
function register_a_user(){
  if(isset($_GET['do']) && $_GET['do'] == 'register'):
    $errors = array();
    if(empty($_POST['user']) || empty($_POST['email'])) $errors[] = 'provide a user and email';
    if(!empty($_POST['spam'])) $errors[] = 'gtfo spammer';

    $user_login = esc_attr($_POST['user']);
    $user_email = esc_attr($_POST['email']);
    require_once(ABSPATH.WPINC.'/registration.php');

    $sanitized_user_login = sanitize_user($user_login);
    $user_email = apply_filters('user_registration_email', $user_email);

    if(!is_email($user_email)) $errors[] = 'invalid e-mail';
    elseif(email_exists($user_email)) $errors[] = 'this email is already registered, bla bla...';

    if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'invalid user name';
    elseif(username_exists($sanitized_user_login)) $errors[] = 'user name already exists';

    if(empty($errors)):
      $user_pass = wp_generate_password();
      $user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);

      if(!$user_id):
        $errors[] = 'registration failed...';
      else:
        update_user_option($user_id, 'default_password_nag', true, true);
        wp_new_user_notification($user_id, $user_pass);
      endif;
    endif;

    if(!empty($errors)) define('REGISTRATION_ERROR', serialize($errors));
    else define('REGISTERED_A_USER', $user_email);
  endif;
}

コードは、ユーザーサインアップページのコードとほぼ同じです。

次に、テンプレートにフォームを追加します。

<?php
  if(defined('REGISTRATION_ERROR'))
    foreach(unserialize(REGISTRATION_ERROR) as $error)
      echo "<div class=\"error\">{$error}</div>";
  // errors here, if any

  elseif(defined('REGISTERED_A_USER'))
    echo 'a email has been sent to '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
  <label>
    User:
    <input type="text" name="user" value=""/>
  </label>

  <label>
    Email:
   <input type="text" name="email" value="" />
  </label>

  <label>
    Delete this text:
   <input type="text" name="spam" value="some_crappy_spam_protection" />
  </label>

  <input type="submit" value="register" />
</form>

これ、ショートコード、または通常のページテンプレートでウィジェットを作成できます...

Gravity Formsは、WordPressのIMOに最適なコンタクトフォームプラグインです。ベータ版の最新バージョンには、ユーザー登録アドオンがあります。私はそれを試しました、そしてそれはうまく機能します。費用はかかります...開発者ライセンスは199ドルです。

価格ページhttp://www.gravityforms.com/purchase-gravity-forms/

ユーザー登録アドオンについて話しているブログ投稿http://www.gravityhelp.com/

このプラグインはWordPressコミュニティに強くお勧めします。

詳細な仕様:

ユーザー登録アドオンの機能の一部は次のとおりです。

  • ユーザー登録 - フォームフィールドをWordPressで利用可能なユーザー登録フィールドにマッピングして、フォームをセットアップしてユーザーを登録します。
  • ユーザーメタ - バイオ、インスタントメッセージングID、名、姓、カスタムユーザーメタなどのユーザーメタデータを簡単に入力して、ニーズに合わせてください。
  • BuddyPress Integration - ユーザー登録プロセスの一部として、BuddyPressプロファイルフィールドデータを入力します。現在、BuddyPress v1.2.6で動作しています。
  • 支払い統合 - ユーザー登録が行われる前に支払いが必要です。 PayPalサブスクリプションのサポート、ユーザーの役割の変更、またはサブスクリプションがキャンセルされた場合にユーザーの削除が含まれています。
  • パスワードフィールド - ユーザー登録アドオンは、フォームで使用するための重力フォームにパスワードフィールドを追加します。パスワードフィールドには、確認オプションと組み込みのパスワード強度チェッカーオプションが含まれています。
  • 投稿者 - ユーザー登録アドオンと投稿の作成を単一のフォームに統合して、作成された投稿の著者がアドオンによって登録されているユーザーです。
  • サイトの作成 - WordPressネットワーク(Multi-Site)でサイトを自動的に作成し、新しく作成したユーザーをサイトの管理者として割り当てます。

SimpleModalログインプラグインを試してください。登録とログイン(ユーザー登録を有効にする必要があります)を使用すると、とても見栄えがよくあります。

使用できます 私のログインをテーマにします プラグイン

これが私がこれをした素敵で簡単な方法です:

現在のWordPress登録フォームからフィールド名とその他のものをコピーします。カスタムフォームに非表示の名前を含む同じ名前フィールドがあることを確認し、フォームアクションを適切な登録URLに指していることを確認してください。 http://www.yourblog.com/wp-login.php?action = register - その後、登録後にフォームがどのようにリダイレクトされるかを変更することをお勧めします。

また、Insiteログインと呼ばれるこのプラグインがあり、登録フォーム、ログインフォームなどをサイトのページにドロップできます。 http://wordpress.org/extend/plugins/insitelogin/

最初のソリューションでは、やりたいことを行う必要があります。

登録フォームにさらにフィールドが必要な場合は、 プロファイルビルダープラグイン

ショートコードを使用してログイン、登録、編集プロファイル用のフロントエンドフォームを追加することにより、Webサイトをカスタマイズできます。

ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top