[う]WordPress MUで個別の「ブログID」的なものを表示させる方法

WordPress MUで個別の「ブログID」的なものを表示させる方法

先日来取り組んでいるWordPress MUでのテーマのカスタマイズですが、1点困ったことがありました。

ワードプレス=1ブログ1インストールというのが基本。そのせいなのか、個別のブログIDが出てこないっぽいんですよね。

WordPress MUはブログIDが出力できない?

私がやりたいのは、

  • WordPress MUで複数のブログを管理。
  • インストールするテーマは1個。
  • それを複数のブログに適用させ、全ブログ同一デザインにする。

ということ。

「全ブログ同一デザイン」と言っても、基本的なレイアウトを統一するということで、タイトル画像や背景画像は、それぞれサイトに合ったものを表示させたいんです。

MTなら、ブログIDをテンプレート上に吐き出してスタイルシートやら画像フォルダの名前で振り分ける、というのができるんですが、WordPress MUは、前述のとおりパッとブログIDが表示できないっぽいんですね。

でも、これができなきゃ計画が崩れてしまう…ということで、強引にブログID的なものを作ってしまいました。その方法が↓これ。

WordPress MUでブログID的なものを表示させる方法

まず、テーマの中にある「functions.php」の中に、次のように記述します。

function myBlogID() {
$myBlogID = get_bloginfo(‘home’)
$myBlogID = mb_substr($myBlogID,7)
$myBlogID = str_replace(‘.domain.com’ , ” , $myBlogID);
print $myBlogID;
}

これは、

  1. 「myBlogID」という関数を作成
  2. 「get_bloginfo(‘home’)」でそのブログのURLを出力し、$myBlogIDに代入
  3. ブログURLに含まれる「http://」をカットするため左から7文字目以降の文字だけになるように整形して$myBlogIDに代入
  4. ドメイン部分を空の値に置き換えて$myBlogIDに代入
  5. それを表示
  6. 最後に閉じる

という意味。ウチは1つのドメインで、ブログをサブドメイン運用してるので、こうすることでサブドメインの部分だけを抜き出すことができます。サブドメインが重複することはないので、ブログ固有の「ID的なもの」になろうかと。

これで、テーマ上で「myBlogID()」と書くことで、ID的なものを出力することができるようになりました。

ブログIDを使った画像の切り替え

さて、強引に作ったブログIDでどうやって画像を切り替えるの方法は次のようになります。

  1. /wp-content/themes/独自テーマのフォルダ内にブログのサブドメインと同じ名前のフォルダを作成
  2. そこに、個別の画像をアップ

あとはテーマ上のimgタグのsrcの値を、

/wp-content/themes/original/<?php myBlogID(); ?>/title.gif
などとしてあげることで、ブラウザで表示させたときには
/wp-content/themes/original/blog1/title.gif
/wp-content/themes/original/blog2/title.gif
/wp-content/themes/original/blog3/title.gif

といった画像が参照される=ブログごとにテーマを変更せずに画像を変えることができるようになります。

と、これで当初の計画を崩さずに済んだわけですが、ちょいと強引に作った感は否めません。もうちょっと簡単にブログIDが出力できればいいんだけど。どなたか、WordPress MUで個別のブログIDを出力させる方法、ご存じありませんか?