この記事は最後に更新してから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をよろしくお願いいたします。


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


お勧め

add_shortcode(2018年5月27日 更新)

void add_shortcode( string $tag, mixed $func )
ショートコード(独自タグ)を追加する。ショートコードは、投稿記事内でテキスト内容がない[tag]や、テキストを内包する[tag]テキスト[/tag]の書式で使用できる独自タグのこと。標準の状態では、 the_content関数によって表示する直前のフィルター処理内でパラメータ$funcで指定した関数・メソッドが実行される。

get_user_setting(2022年1月31日 更新)

mixed get_user_setting( string $name [ , string $default = false ] )
ユーザーインターフェイス設定を取得する。

have_posts(2018年5月27日 更新)

bool have_posts( )
次の投稿データが存在するかを調べる。

in_category(2018年5月27日 更新)

bool in_category( mixed $category [ , mixed $post = null ] )
投稿情報が指定したカテゴリーに属しているか調べる。

add_feed(2024年6月24日 更新)

string add_feed( string $feedname, callable $callback )
フィードを追加する。