WordPress は複数のユーザーで運営することができます。管理者が手動でユーザーを追加することもできますが、ログイン画面などから自由にユーザー登録をしてもらうこともでき、そのためのリンクを表示するのが wp_register()
関数になります。
wp_register() 関数とは
ログインしていないユーザーに対して、ユーザー登録を許可している WordPress へのユーザー登録ページへのリンクを出力します。また、ログインしている場合には、ダッシュボードへのリンクを出力します。
パラメーター
$before | リンクの前に出力するテキストを指定できる。 デフォルトは <li> |
$after | リンクの後に出力するテキストを指定できる。 デフォルトは </li> |
$display | デフォルトでは true 、リンクは返さない |
利用するために必要な準備
WordPress の管理画面内設定の一般にて、メンバーシップ:だれでもユーザー登録ができるようにする を有効にする必要があります。
使い方
一般的には関数を記述するだけで利用可能です。ただし、上記している利用するために必要な準備は確認してください。
wp_register();
上のコードを設置することで出力される HTML は以下のようになっています。
// ログインしていない場合
<li><a href="http://wordpress-dev.wp/wp-login.php?action=register">登録</a></li>
// ログインしている場合
<li><a href="http://wordpress-dev.wp/wp-admin/">サイト管理</a></li>
<li>〜</li>
で出力されるのですが、前後に <ul>
タグはないマークアップになってしまいます。ですので、以下のようにすることで <ul>
タグも含めた HTML を出力することができます。
wp_register( '<ul><li>','</li></ul>' );
フック
register
apply_filters( ‘register’, string $link )
ユーザー登録ページまたは管理者ページへの HTML リンクをフィルターすることができます。
以下のコードで試すことができます。
add_filter(
'register',
function ( $link ) {
echo '<hr>' . basename(__FILE__) . ' :: ' . __LINE__;
echo( '<pre>' );
var_dump( $link );
echo( '</pre>' );
echo '<hr>';
},
10,
1
);
まとめ
基本的にはユーザー登録が許可されている WordPress であれば、以下のようにログインページに登録するためのリンクが表示されます。
しかし、このような形ではなく、もっと目立たせたい場合や、任意の場所にリンクを出力したい場合などに便利でしょう。