WordPressμ(WPMU)の個人的なメモ

全然判らなくて試行錯誤中。
ようやく、思ったことができた(ような)ので、個人的にメモ。

やりたいことは…
・TOPページにはブログの更新一覧を表示する
・TOPの更新一覧にはメインの親ブログ分を載せない

結果として…
●テーマを作製&TOPページは固定のページを用いる
・親ブログ(子ブログとは違う)テーマを作る
・テーマ(page.php)へ必要な設定を行う
→TOPページか通常のページかを判定し、TOPページのみの処理を加える
●TOPページの場合は以下の処理を行う
・親ブログ以外(子ブログのみ)を処理する
・ブログ数を取得し、その個数分のループを行う
→ブログのタイトルとブログのTOPを表示
→最新投稿のタイトルを表示し、該当の投稿へリンク
という処理が必要となる。

ヘッダ読み込みやコンテンツ部分のDIVやPタグなど
<?php
if (is_page(‘X’)) :
?>
<ul>
for ($i = 0; $i < get_blog_count(); $i++) :
$blog_list = get_last_updated();
if ($blog_list[$i][‘blog_id’] != 1) :
?>
<li><a href=”<?php echo get_blog_option($blog_list[$i][‘blog_id’], ‘siteurl’); ?>”><?php echo get_blog_option($blog_list[$i][‘blog_id’], ‘blogname’); ?></a>
<?php
switch_to_blog($blog_list[$i][‘blog_id’]);
query_posts(“posts_per_page=1&post_type=post&post_status=publish&orderby=date”);
?>
<ul>
<?php if (have_posts()) : while(have_posts()) : the_post(); ?>
<li><a href=”<?php echo get_permalink(); ?>”><?php the_title(); ?></a></li>
<?php endwhile; endif; wp_reset_query(); endif;?>
</ul></li>
<?php
endfor;
?>
</ul>
else :
?>
通常のページ処理
<?php
endif;
?>
コンテンツ部のDIVやPタグを閉じ、フッタ読み込みなど

・is_page
TOPページか否かを判定。
パラメータはページID。
以下、TOPページだった場合の処理。
・get_blog_count
ブログ数を取得する処理。
ブログ数分を処理を行うので、FOR分にてLOOP。
・get_last_updated
ブログの更新情報を取得
array[][‘blog_id’]にブログのIDが入ってくるので、親ブログかどうかを判定可能。
通常、親ブログのIDは1。
・get_blog_option
ブログ情報を取得する。
ここでは、ブログIDから「siteurl」と「blogname」を取得。
ブログ名を子ブログ(TOP)へのリンクと共に表示させる。
・switch_to_blog
ブログIDを指定して、ブログを切り替える。
この処理を行わないと、正常にパーマリンクなどを取得できない。
これが判らず、難儀した。
・query_posts
切り替えたブログのエントリを取得する。
通常、URLに該当するブログ(この場合、最TOPなので親ブログ)の情報になるので、子ブログエントリに上書きをするイメージ。
・wp_reset_query
query_postsとセット。
これを行わないと、次のquery_postsに影響する。
(ただし、これを行うことによって、プラグインに影響あるかも?)

No comments yet.

コメント投稿

※各記事(エントリー/投稿)の内容は投稿時のものです。閲覧時とは異なることがございますのでご了承ください。