[PHP]wordpressでサイト構築Tips

wordpress3.0からマルチサイト機能がある。
これを使うとhttp://yourdomain/とhttp://yourdomain/A/とhttp://yourdomain/B/で
違うブログを表示できる。
・http://yourdomain/A/にアクセスしたときもhttp://yourdomain/B/にアクセスしたときも
 http://yourdomain/index.phpが呼ばれている。
・http://yourdomain/wordpress/にwordpressをインストールして、
 トップページをhttp://yourdomain/にする設定では
 マルチサイト機能が使えない。http://yourdomain/にインストールすれば出来る。

参考サイト
WordPressのマルチサイト機能で複数のブログを管理する
http://mage8.com/multiple-blogs-on-wordpress.html

マルチサイト機能使用時のindex.phpのサンプル

index.php
<?php
$req=$_SERVER['REQUEST_URI'];
$n=explode('?',$req);
$req=$n[0];

if($req=='/'){
	//普通にテンプレートを使って表示
	define('WP_USE_THEMES', true);
	require('./wp-blog-header.php');
}else if($req=='/A/'){
	define('WP_USE_THEMES', false);
	require('./wp-blog-header2.php');
	include('include_A.php');
}else if($req=='/B/'){
	define('WP_USE_THEMES', false);
	require('./wp-blog-header2.php');
	include('include_B.php');
}
?>
wp-blog-header2.php
<?php
if ( !isset($wp_did_header) ) {
	$wp_did_header = true;
	require_once( dirname(__FILE__) . '/wp-load.php' );
	wp();
}
?>

よく使いそうなメソッド

全ブログのIDを取得
$blogs=get_blog_list(0,'all');
foreach($blogs as $blog){
	echo $blog['blog_id'];
}

カテゴリー一覧を取得
$categories = get_categories();
foreach($categories as $cat){
	echo $cat->cat_ID;
}

指定したカテゴリIDから記事を取得
<ul>
<?php
	query_posts('showposts=3&cat='.$category->cat_ID);
	if (have_posts()) : while (have_posts()) : the_post();
?>
<li>
	<?php
		the_ID();
		echo '<br/>';
		the_title();
		echo '<br/>';
		the_content();
	?>
</li>
<?php endwhile; endif; ?>
</ul>

記事の内容を取得
$c=get_the_content();

参考サイト

関数リファレンス – WordPress Codex 日本語版
http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9

管理画面で各ブログのIDを表示するプラグイン

View Blog ID in WordPress Multisite – WP Engineer

View Blog ID in WordPress Multisite