WordPressのマルチサイトのグローバル変数

WordPressのグローバル変数について調べました。

Codex WPMU Global Variables

親や子、子サイトごとに何かを出し分ける時には、$current_blogオブジェクトの中身を使うとよさそうです。
また、global $blog_id;しておくことで、以下の様な使い方もできます。

global $blog_id;
if ( $blog_id == 1 ) {
	echo '親サイト';
} elseif ( $blog_id == 2 ) {
	echo '1つ目の子サイト';
} else {
	echo 'その他の子サイト';
}

もう一つの、$current_siteオブジェクトは何に使うんでしょうか??謎です。ネットワークをもう一つ増やすことができるのかな??

追記:2012/06/22
@jim0912さんから以下のようにコメントいただきました!ありがとうございます!

is_main_site()について調べてみると、wp-icludes/functions.phpにありました。

function is_main_site( $blog_id = '' ) {
	global $current_site, $current_blog;

	if ( !is_multisite() )
		return true;

	if ( !$blog_id )
		$blog_id = $current_blog->blog_id;

	return $blog_id == $current_site->blog_id;
}

この関数の中で、2つのグローバル変数を使っていました。

$current_blogオブジェクト

// 親サイト
var_dump( $current_blog );

object(stdClass)#18 (12) {
  ["blog_id"]=>
  string(1) "1"
  ["site_id"]=>
  string(1) "1"
  ["domain"]=>
  string(16) "example.com"
  ["path"]=>
  string(1) "/"
  ["registered"]=>
  string(19) "2012-06-20 15:17:42"
  ["last_updated"]=>
  string(19) "2012-06-21 01:49:50"
  ["public"]=>
  string(2) "-1"
  ["archived"]=>
  string(1) "0"
  ["mature"]=>
  string(1) "0"
  ["spam"]=>
  string(1) "0"
  ["deleted"]=>
  string(1) "0"
  ["lang_id"]=>
  string(1) "0"
}

// 子サイト
var_dump( $current_blog );
object(stdClass)#18 (12) {
  ["blog_id"]=>
  string(1) "2"
  ["site_id"]=>
  string(1) "1"
  ["domain"]=>
  string(24) "beijing.example.com"
  ["path"]=>
  string(1) "/"
  ["registered"]=>
  string(19) "2012-06-21 12:26:11"
  ["last_updated"]=>
  string(19) "2012-06-21 03:26:12"
  ["public"]=>
  string(1) "1"
  ["archived"]=>
  string(1) "0"
  ["mature"]=>
  string(1) "0"
  ["spam"]=>
  string(1) "0"
  ["deleted"]=>
  string(1) "0"
  ["lang_id"]=>
  string(1) "0"
}

$current_siteオブジェクト

// 親サイト
var_dump( $current_site );

object(stdClass)#3 (6) {
  ["id"]=>
  int(1)
  ["domain"]=>
  string(16) "example.com"
  ["path"]=>
  string(1) "/"
  ["blog_id"]=>
  int(1)
  ["cookie_domain"]=>
  string(16) "example.com"
  ["site_name"]=>
  string(22) "Example Name"
}

// 子サイト
var_dump( $current_site );

object(stdClass)#3 (6) {
  ["id"]=>
  int(1)
  ["domain"]=>
  string(16) "example.com"
  ["path"]=>
  string(1) "/"
  ["blog_id"]=>
  int(1)
  ["cookie_domain"]=>
  string(16) "example.com"
  ["site_name"]=>
  string(22) "Example Name"
}

↓ プラグインを作る方々への本、書きました。 ↓

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です