Login rebuilderで第2ログインページのURLを取得する

説明

先週のこと、「Login rebuilder」のユーザから「 wp_login_url関数のように第2ログインページのURLを取得できないか」という問い合わせがありました。その時点ではそのような関数やメソッドを用意していなかったのですが、まあニーズがあるなら作ってみようと思い、対応するメソッドを追加したLogin rebuilderバージョン1.4.3をリリースしました。

まずは簡単だがメソッドの書式を紹介する。

string wp_secondary_login_url( [ string $redirect = '' [ , int $blog_id = 0 ] ) )

パラメータ$redirectにはログイン成功時にリダイレクトするURLを、$blog_idにはマルチサイト時のブログIDを指定。どちらのパラメータも省略可能である。標準的な使い方は次の通り。

if ( method_exists( $GLOBALS['plugin_login_rebuilder'], 'wp_secondary_login_url' ) ) {
	$url = $GLOBALS['plugin_login_rebuilder']->wp_secondary_login_url();
}

念のため、メソッドを呼び出す前にmethod_exists関数で存在を確認している。返り値は、第2ログインページのURLで、プラグインが有効(ステータスが「稼働中」)でないか、第2ログインページが指定されいない場合には''が返る。返り値が''の場合の処理については適宜行ってほしい。

次はログイン後にリダイレクトするページを指定してみる。このダイレクトするページのURLは、wp_secondary_login_urlメソッドの第1パラメータに指定する。次の例は、ログイン後のページとしてサイトトップを指定している。 サイトトップを設定してみる。

if ( method_exists( $GLOBALS['plugin_login_rebuilder'], 'wp_secondary_login_url' ) ) {
	$url = $GLOBALS['plugin_login_rebuilder']->wp_secondary_login_url( get_option( 'siteurl' ) );
}

第1パラメータで指定したURLは、返り値の第2ログインページのURLにredirect_toパラメータ(URLクエリ)の値としてURLエンコードされた内容が追加される。

最後にマルチサイトにおいて現在のサイトと異なるサイトの第2ログインページのURLを取得する例を紹介しておく。

マルチサイトでLogin rebuilderを使用すると、各サイト(ブログ)ごとに異なるログインページを設定できる。それらのサイトはブログIDで区別され、そのブログIDを使用することで任意のサイトの第2ログインページのURLを取得できるようにしている。具体的には、ブログIDが2のサイトの第2ログインページのURLを取得する場合は次のように記述する。

if ( method_exists( $GLOBALS['plugin_login_rebuilder'], 'wp_secondary_login_url' ) ) {
	$url = $GLOBALS['plugin_login_rebuilder']->wp_secondary_login_url( '', 2 );
}

なお現在のサイトの第2ログインページのURLを取得する場合は、ブログIDを指定する必要はなく、第2パラメータを省略すればよい。


p.s.お問い合わせいただいた方へ。メールを返信しようとしたところエラーになってしまいましたので、こちらの投稿にて返信とさせてください。今後ともLogin rebuilderをよろしくお願いいたします。


最終更新 : 2018年05月27日 10:45


お勧め

wp_normalize_path(2018年7月6日 更新)

string wp_normalize_path( string $path )
パス名を標準化する。

is_search(2018年5月27日 更新)

bool is_search( )
要求されているページが、検索結果ページか調べる。

wp_parse_args(2012年7月19日 更新)

array wp_parse_args( mixed $args, mixed $defaults = '' )
クエリー文字列を解析し、各パラメータのデフォルト値とマージした連想配列を取得する。

the_post_thumbnail(2018年5月27日 更新)

void the_post_thumbnail( [ mixed $size = 'post-thumbnail' [ , mixed $attr = '' ] ] )
アイキャッチ画像(サムネイル)を表示する。

wp_add_inline_script(2018年5月27日 更新)

bool wp_add_inline_script( string $handle, string $data [ , string $position = 'after' ] )
インラインスクリプトを追加する。