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

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

関連

お勧めコンテンツ

edit_post_link(2010年10月20日 登録)

void edit_post_link( [ string $link = null [ , string $before = '' [ , string $after = '' [ , int $id = 0 [ , string $class = 'post-edit-link' ] ] ] ] ] )
投稿記事の編集用リンクを表示する。

get_post_type_archive_template(2013年10月29日 登録)

string get_post_type_archive_template()
投稿タイプアーカイブのテンプレートを取得する。

add_query_arg(2013年1月22日 登録)

string add_query_arg( mixed $param1 [ , mixed $param2 [ , mixed $param3 ] ] )
クエリーURIを更新する。

is_date(2009年11月30日 登録)

bool is_date( )
要求されているページが、日付アーカイブページ(年別、月別、日別アーカイブページの何れか)か調べる。

wp_upload_dir(2011年4月27日 登録)

array wp_upload_dir( [ string $time = null [ , bool $create_dir = true [ , bool $refresh_cache = false ] ] ] )
アップロードディレクトリ(パス名)を取得する。

最終更新日時 : 2015-05-24 19:21