[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();
管理画面で各ブログのIDを表示するプラグイン
View Blog ID in WordPress Multisite – WP Engineer