WordPress を使用してカスタム登録フォーム プラグインを作成する方法、wordpress form_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:17:08
オリジナル
996 人が閲覧しました

WordPressを使用してカスタム登録フォームプラグイン、WordPressフォームを作成する方法

出典: http://www.ido321.com/1031.html

原文: カスタムWordPress登録フォームプラグインの作成

翻訳: カスタム WordPress プラグインのサインアップ フォームを作成します

翻訳者: dwqs

早速本題に入りますが、WordPress では、新規ユーザー用、または既存の WordPress サイトに新規ユーザーを追加する場合に、カスタム登録フォームを提供しています。しかし、WordPress ダッシュボードを表示するオプションなしでカスタム登録フォームを実装したい場合はどうすればよいでしょうか?

この記事では、タグ テンプレートとショートコード テンプレートを組み合わせて、WordPress でカスタム登録フォームを作成する方法を学びます。

WordPress のデフォルトの登録フォームは、ユーザー名とメールアドレスの 2 つのフィールドのみで構成されています。

このユーザー名とメールフォームフィールドだけで登録が非常に簡単になります。まず、ユーザー名を入力し、次にパスワードを受け取るために使用される電子メール アドレスを入力します。次に、メールで受け取ったパスワードを使用してサイトにログインし、プロフィールを完成させ、パスワードをシンプルで覚えやすいものに変更します。

ユーザー領域にこうしたプレッシャーを課すのではなく、サイトに登録するだけでよいので、ユーザー名やメールアドレスに加えて、パスワード、個人 URL、個人プロフィールなどの追加の重要なフィールドを含む直接フォーム フィールドを提供してみてはいかがでしょうか, ユーザーが使用する登録フォームにニックネームとその名前はありますか?

これは、Tuts+ のようなマルチユーザー Web サイトで非常に便利です。

この記事では、次のフォームフィールドを使用してカスタムフォーム登録プラグインを構築します:

  • ユーザー名
  • パスワード
  • メール
  • ウェブサイトURL
  • ニックネーム
  • 略歴 (または自己紹介セクション)

このカスタム フォーム プラグインは、ショートコードと連絡先テンプレートを使用して WordPress に統合できます。

ショートコード テンプレートを使用して、サイトに正式な登録ページを作成できます。公開された記事でショートコード テンプレートを使用して、ユーザーが記事を読んだ後に登録できるようにすることもできます。

Web サイトのサイドバーの特定の場所に登録フォームを追加する場合は、ラベル テンプレートで必要な登録フォームのみを作成する WordPress テーマ内の場所を編集できます。

作成する前に、ユーザー名、パスワード、メールアドレスのフィールドが必須であることに注意してください。

検証関数を作成するときは、これらのルールを強制します。

プラグインを構築する

那的、先ほども言ったように、プラグインのエンコードを開始しました。まず、プラグインのヘッダーをインクルードします:

リーリー

次に、登録フォームを使用して HTML コードを含む PHP 関数を作成します。 リーリー

登録フィールドは変数として上記の関数に渡されることに注意してください。関数内には次のコードの例が表示されます:

リーリー

この三項演算子は、グローバル変数配列 $_POST にデータが含まれているかどうかを確認し、データがある場合は、入力されたフォーム フィールドの値を次のフィールドに入力するために保存します。

フォームデータを検証してフォームデータをクリアしない限り、登録フォームは完了したとは見なされません。それ以外の場合はカウントされません。したがって、registration_validation

というフォーム検証関数を作成します。

<span> 検証の「面倒な」作業を簡略化するために、WordPress の <code>registration_validation<span>的表单验证函数。</span>WP_Error クラスを使用できます。私に従って検証関数を作成してください:

<span>为了简化验证的”痛苦”,我们可以使用WordPress中的 <span>WP_Error</span> 类。跟着我编写验证函数:</span>1. 関数を作成し、登録フォームのフィールド値を関数のパラメータとして渡します

リーリー <span>1、创建函数,并将注册表单的字段值作为函数的参数传递进来</span>

2. WP_Error クラスをインスタンス化し、そのインスタンスをグローバル変数として使用して、関数のスコープ外で使用できるようにします。

リーリー

3、记住:我们说的用户名、密码和电子邮件是必填的,不要忽略了。为了执行这个规则,我们需要检查它们中任何一个是否为空。如果为空,我们就将错误信息追加给WP_Error 类的实例。

<span>if</span><span> ( <span>empty</span>( $username ) || <span>empty</span>( $password ) || <span>empty</span>( $email ) ) {
    $reg_errors->add(<span>'field'</span>, <span>'Required form field is missing'</span>);
}</span>
ログイン後にコピー

4、我们也可以确保用户名的字符个数不小于4

<span>if</span><span> ( 4 > strlen( $username ) ) {
    $reg_errors->add( <span>'username_length'</span>, <span>'Username too short. At least 4 characters is required'</span> );
}</span>
ログイン後にコピー

5、检查用户名是否被注册了

<span>if</span><span> ( username_exists( $username ) )
    $reg_errors->add(<span>'user_name'</span>, <span>'Sorry, that username already exists!'</span>);</span>
ログイン後にコピー

6、利用WordPress的validate_username函数确保用户名是可用的

<span>if</span><span> ( ! validate_username( $username ) ) {
    $reg_errors->add( <span>'username_invalid'</span>, <span>'Sorry, the username you entered is not valid'</span> );
}</span>
ログイン後にコピー

7、确保用户输入的密码的字符个数不小于5

<span>if</span><span> ( 5 > strlen( $password ) ) {
        $reg_errors->add( <span>'password'</span>, <span>'Password length must be greater than 5'</span> );
    }</span>
ログイン後にコピー

8、检查电子邮件是否有效

<span>if</span><span> ( !is_email( $email ) ) {
    $reg_errors->add( <span>'email_invalid'</span>, <span>'Email is not valid'</span> );
}</span>
ログイン後にコピー
ログイン後にコピー
9、检查电子邮件是否被注册
<span>if</span><span> ( !is_email( $email ) ) {
    $reg_errors->add( <span>'email_invalid'</span>, <span>'Email is not valid'</span> );
}</span>
ログイン後にコピー
ログイン後にコピー

10.、如果用户填写了网站字段,需要检查其是否有效
<span>if</span><span> ( ! <span>empty</span>( $website ) ) {
    <span>if</span> ( ! filter_var( $website, FILTER_VALIDATE_URL ) ) {
        $reg_errors->add( <span>'website'</span>, <span>'Website is not a valid URL'</span> );
    }
}</span>
ログイン後にコピー

11、最后,我们在WP_Error实例中对错误进行循环,并显示个别的错误
<span>if</span><span> ( is_wp_error( $reg_errors ) ) {
 
    <span>foreach</span> ( $reg_errors->get_error_messages() <span>as</span> $error ) {
     
        <span>echo</span> <span>'<div>'</span>;
        <span>echo</span> <span>'<strong>ERROR</strong>:'</span>;
        <span>echo</span> $error . <span>'<br/>'</span>;
        <span>echo</span> <span>'</div>'</span>;
         
    }
 
}</span>
ログイン後にコピー

这样,验证函数就完成了。接下来是complete_registration()<span>函数,用于处理用户注册。用户的注册真正完成是通过wp_insert_user函数,</span> <span>用户的数据作为数据保存后可以作为此函数的参数。</span> <span><br /> </span>
<span>function</span><span> complete_registration() {
    <span>global</span> $reg_errors, $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio;
    <span>if</span> ( 1 > count( $reg_errors->get_error_messages() ) ) {
        $userdata = <span>array</span>(
        <span>'user_login'</span>    =>   $username,
        <span>'user_email'</span>    =>   $email,
        <span>'user_pass'</span>     =>   $password,
        <span>'user_url'</span>      =>   $website,
        <span>'first_name'</span>    =>   $first_name,
        <span>'last_name'</span>     =>   $last_name,
        <span>'nickname'</span>      =>   $nickname,
        <span>'description'</span>   =>   $bio,
        );
        $user = wp_insert_user( $userdata );
        <span>echo</span> <span>'Registration complete. Goto <a href="'</span> . get_site_url() . <span>'/wp-login.php">login page</a>.'</span>;  
    }
}</span>
ログイン後にコピー

在上面的函数中,我们将$reg_errors作为WP_Error的实例,并将表单字段作为全局变量以便于可以再全局作用域中使用。

我们需要检查$reg_errors是否包含任何错误,如果没有错误,则将用户注册信息插入到WordPress的数据库并用登陆链接来显示注册完成的信息。

然后,把所有我们之前创建的函数全部放在全局函数custom_registration_function()<span>之中</span>

<span>function</span><span> custom_registration_function() {
    <span>if</span> ( <span>isset</span>($_POST[<span>'submit'</span>] ) ) {
        registration_validation(
        $_POST[<span>'username'</span>],
        $_POST[<span>'password'</span>],
        $_POST[<span>'email'</span>],
        $_POST[<span>'website'</span>],
        $_POST[<span>'fname'</span>],
        $_POST[<span>'lname'</span>],
        $_POST[<span>'nickname'</span>],
        $_POST[<span>'bio'</span>]
        );
         
        <span>// sanitize user form input</span>
        <span>global</span> $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio;
        $username   =   sanitize_user( $_POST[<span>'username'</span>] );
        $password   =   esc_attr( $_POST[<span>'password'</span>] );
        $email      =   sanitize_email( $_POST[<span>'email'</span>] );
        $website    =   esc_url( $_POST[<span>'website'</span>] );
        $first_name =   sanitize_text_field( $_POST[<span>'fname'</span>] );
        $last_name  =   sanitize_text_field( $_POST[<span>'lname'</span>] );
        $nickname   =   sanitize_text_field( $_POST[<span>'nickname'</span>] );
        $bio        =   esc_textarea( $_POST[<span>'bio'</span>] );
 
        <span>// call @function complete_registration to create the user</span>
        <span>// only when no WP_error is found</span>
        complete_registration(
        $username,
        $password,
        $email,
        $website,
        $first_name,
        $last_name,
        $nickname,
        $bio
        );
    }
 
    registration_form(
        $username,
        $password,
        $email,
        $website,
        $first_name,
        $last_name,
        $nickname,
        $bio
        );
}</span>
ログイン後にコピー

我需要说明一下全局函数custom_registration_function()<span>中有哪些代码。</span>

<span> 首先,我通过检查<code>$_POST['submit']<span>是否是空来确定表单是否提交。如果提交了,我就调用</span>

<span><code><span>registration_validation()函数来验证用户提交的表单.</span>

<code><span>然后,确保表单数据的有效性并将有效的数据在表单字段域之后用一个变量命名。最后,调用</span>

<code><span>complete_registration()函数保存用户。我需要调用registration_form()函数来显示用户注册表单。</span>

<code><span>我之前提到过,我打算用短代码模板来支持注册插件。下面就是短代码模的支持代码:</span>

<span>// Register a new shortcode: [cr_custom_registration]</span><span>
add_shortcode( <span>'cr_custom_registration'</span>, <span>'custom_registration_shortcode'</span> );
 
<span>// The callback function that will replace [book]</span>
<span>function</span> custom_registration_shortcode() {
    ob_start();
    custom_registration_function();
    <span>return</span> ob_get_clean();
}</span>
ログイン後にコピー

 

到这里为止,我们已经完成了插件,下面的一张图片展示了注册表单的外观。

注意,你可能不会得到完全相同的外观,因为WordPress站点的CSS样式不同。

应用插件

        为了在WordPress的文章页或独立页面使用这个插件,可以加入以下代码:[cr_custom_registration]

<span>也可以添加列出的模板标记<code><?php custom_registration_function(); ?>.,这样可以让表单插件成

<span>为WordPress主题的一个部分。你可以从这篇文章的附加代码得到这个插件。</span>

 

<span><strong>总结</strong></span>

<code><span><strong>   </strong>在这篇文章中,我们一步步创建了一个自定义注册表单并添加到WordPress站点。你可以添加额外字段,进一</span> この記事では、カスタム登録フォームを段階的に作成し、WordPress サイトに追加します。さらにフィールドを追加できます

<span>步扩展这个注册表单,例如用户角色,AOL IM 账户,但是确保数据时有效的。</span>ユーザー ロール、AOL IM アカウントなど、この登録フォームを段階的に展開しますが、データが有効であることを確認してください。

<span>    如果你有任何问题或建议你,可以留下评论。</span>

ご質問やご提案がございましたら、コメントを残していただけます。

<span>下一篇:</span>如何在网站中添加音乐 <span><br></span>

<p>次の記事: <span></span></p>
Web サイトに音楽を追加する方法


カスタムフォームプラグインWordPress Form Managerの使い方

category-6.php ページでは、wp_head と wp_footer が導入されていますか? プラグインに必要なリソース ファイルには、これら 2 つのファイルをロードする必要がありますか?

コメントフォームをカスタマイズしたり、携帯電話番号の入力を追加したり、メールやウェブサイトの入力を削除したりできるWordPressプラグイン

これにはプラグインが必要ですか? !私のWordPressは基本的にプラグインを使用していませんが、このような単純な機能を書くのに何時間もかかります...プラグインが増えると、遅くなります http://www.bkjia.com/PHPjc/894761.html
www.bkjia.comtru​​e
http://www.bkjia.com/PHPjc/894761.html🎜🎜技術記事🎜🎜 WordPress を使用してカスタム登録フォーム プラグインを作成する方法、WordPress フォーム ソース: http://www.ido321.com/1031.html 原文: カスタム WordPress 登録フォーム プラグインの作成 翻訳...🎜🎜🎜🎜 🎜🎜
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート