インストール型 WordPress を使ったことがある人なら誰しもが目にしたことがあるであろう、あのログインフォームを出力してくれる関数 wp_login_form()
を、本記事では徹底的に調査してみたいと思います。
この記事を読み進めていただくと、ただ関数を設置する使い方だけでなく、たくさん用意されているパラメーターやフックを使いこなせるようになるかもしれません。
ぜひ最後までご覧ください。
wp_login_form() 関数とは
WordPress のどこでも使えるシンプルなログインフォームを出力します。ログインフォームの HTML はデフォルトで出力されます。echo
を false
にすることで
パラメーター
$args
という配列を持っていて、その中にオプションをさまざま設定できるようになっています。
echo | デフォルトは true でログインフォームを出力する。false を設定するとフォームの HTML を返す。 |
redirect | リダイレクト先の URL を指定できる。 フルパスの URL でないといけない。 |
form_id | フォームの ID 属性を指定できる。デフォルトは loginform |
label_username | ユーザー名またはメールアドレス フィールドのラベルを指定できる。 デフォルトは「ユーザー名またはメールアドレス」 |
label_password | パスワードフィールドのラベルを指定できる。 デフォルトは「パスワード」 |
label_remember | リメンバーフィールドのラベルを指定できる。 デフォルトは「ログイン状態を保存する」 |
label_log_in | 送信ボタンのラベルを指定できる。デフォルトは「ログイン」 |
id_username | ユーザー名フィールドの ID 属性を指定できる。デフォルトは user_login |
id_password | パスワードフィールドの ID 属性を指定できる。デフォルトは user_pass |
id_remember | リメンバーフィールドの ID 属性を指定できる。デフォルトは remenberme |
id_submit | 送信ボタンの ID 属性を指定できる。デフォルトは wp_submit |
remember | フォームに「ログイン状態を保存する」チェックボックスを表示するかどうか。デフォルトは true |
value_username | ユーザー名フィールドのデフォルト値を指定できる。 |
value_remember | 「ログイン状態を保存する」チェックボックスをデフォルトでチェックするかどうかを指定できる。デフォルトは false |
使い方
基本的な使い方は、そのまま記述することでログインフォームを好きな場所に表示することができます。
wp_login_form();
パラメーターを指定してお好きなログインフォームにカスタマイズすることもできます。
wp_login_form(
array(
'echo' => true,
'redirect' => home_url( 'sample' ),
'form_id' => 'my-special-login-form',
'label_username' => 'あなたのユーザー名',
'label_password' => '大事な大事なパスワード',
'label_remember' => 'ログイン情報を覚えてしまってもいいんですか?',
'label_log_in' => 'はいっちゃう?はいっちゃうよ?',
'id_username' => 'super-user-name-id',
'id_password' => 'super-user-pass-id',
'id_remember' => 'i-remember-you',
'id_submit' => 'my-submit-button',
'remember' => true,
'value_username' => 'マット',
'value_remember' => true,
)
);
フック
login_form_bottom
apply_filters( ‘login_form_bottom’, string $content, array $args )
ログインフォームの下部に表示するコンテンツをフィルターします。第一引数は $content
、第二引数は $args
になります。$args
にはパラメータが入っています。
以下のようなコードでフォーム下にコンテンツを追加することができます。
add_filter(
'login_form_bottom',
function ( $content ) {
return $content . '<p>ログインフォームの下に出力されます</p>';
},
10,
1
);
login_form_defaults
apply_filters( ‘login_form_defaults’, array $defaults )
ログインフォームのデフォルト出力引数をフィルターします。引数は $defaults
です。
以下のコードで内容を確認できます。
add_filter(
'login_form_defaults',
function ( $defaults ) {
echo '<hr>' . basename(__FILE__) . ' :: ' . __LINE__;
echo( '<pre>' );
var_dump( $defaults );
echo( '</pre>' );
echo '<hr>';
return $defaults;
},
10,
1
);
login_form_middle
apply_filters( ‘login_form_middle’, string $content, array $args )
ログインフォームの中段(パスワードフィールドと「ログイン状態を保存する」チェックボックスの間)に表示するコンテンツをフィルターします。第一引数は $content
、第二引数は $args
になります。
以下のようなコードでフォームの中段にコンテンツを追加することができます。
add_filter(
'login_form_middle',
function ( $content ) {
return $content . '<p>ログインフォームの中段に出力されます</p>';
},
10,
1
);
login_form_top
apply_filters( ‘login_form_top’, string $content, array $args )
ログインフォームの上部に表示するコンテンツをフィルターします。第一引数は $content 、第二引数は $args になります。
以下のようなコードでフォームの上部にコンテンツを追加することができます。
add_filter(
'login_form_top',
function ( $content ) {
return $content . '<p>ログインフォームの上部に出力されます</p>';
},
10,
1
);
まとめ
ご覧いただいた通り、wp_login_form()
を設置するだけで簡単にログインフォームを用意することができます。また、パラメーターも豊富に用意されていて細かいところもカスタマイズができるようになっていますね。ぜひ、みなさんもパラメーターなど触って遊んでみてください。