この記事は最後に更新してから1年以上経過しています。

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をよろしくお願いいたします。


最終更新 : 2015年05月24日 19:21


お勧め

is_embed(2015年12月23日 更新)

bool is_embed( )
要求されているページが埋め込み投稿ページか調べる。

get_custom_header_markup(2017年4月7日 更新)

string get_custom_header_markup()
カスタムヘッダーのHTMLパーツを取得する。

wp_set_password(2013年5月5日 更新)

void wp_set_password( string $password, int $user_id )
ログインパスワードを設定する。

get_category(2011年5月25日 更新)

mixed get_category( mixed $category [ , string $output = OBJECT [ , string $filter = 'raw' ] ] )
IDを指定してカテゴリー情報を取得する。

get_body_class(2012年6月23日 更新)

array get_body_class( [ string $class = '' ] )
bodyタグのclass属性値を取得する。