需要があるのかどうかよく分からないシリーズです><
親ブログにログインフォームを設置してあると思います。
子ブログのユーザがログインすると、
“親ブログ名”のダッシュボードに行こうとしたけど行けないよ。
以下が、あなたが属するブログのダッシュボードとブログだよ。
クリックしてくださいね。
「所属サイトのリスト表示」
となります。
マルチサイトを、全く別のサイトの管理のために使っている場合には便利でしょうが、ホスティング系のサービスの場合には不便です。
そこで、ログインしたユーザの属するサイトのURL(ここではブログ。)に転送してしまうプラグインです。
インストール
下記のソースを使うか、テーマのfunctions.phpに関数部分のみを貼りつけるかお願いします。
ソース
ログインしたユーザが所属するサイトのURLを取得して、jsで転送しています。
転送しない時のメッセージも簡単ですが出しました。
2つ以上のブログに登録されている場合には、今まで通りの表示にします。
<?php
/*
Plugin Name: child_blog_users_redirect
Plugin URI: https://nskw-style.com/2011/wordpress/plugin-downloads/child_blog_users_redirect.html
Description: 親ブログで子ブログユーザがログインした場合に、所属する子ブログに転送する。
Version: 1.0
Author: Shinichi Nishikawa
*/
function child_blog_users_redirect() {
if ( ! is_user_logged_in() || is_network_admin() )
return;
$blogs = get_blogs_of_user( get_current_user_id() );
if ( wp_list_filter( $blogs, array( 'userblog_id' => get_current_blog_id() ) ) )
return;
foreach ( $blogs as $blog ) {
$site_urls[] = $blog->siteurl;
}
$first_site_url = $site_urls[0];
if ( $site_urls[1] ) { //このユーザが2個以上ブログを持っている場合は、今まで通りで。
return;
} else {
?>
<script language="JavaScript">
<!--
location.href="<?php echo $first_site_url; ?>";
//-->
</script>
<p>ブログへ転送しています。</p>
<p>転送されない場合には、<a href="<?php echo esc_url($first_site_url); ?>"><?php echo esc_url($first_site_url); ?>をクリックしてください。</a></p>
<?php
die();
}
}
add_action( 'admin_page_access_denied', 'child_blog_users_redirect', 98 );
?>


コメント