WordPress MUのトップページに各ブログの新着記事を表示する[Permanent Link]
- 2008年12月18日 12時47分
- WordPress MU | tips
- 3 Comments
WPMUのテンプレートに各ブログの最新記事を表示するコードがなかったので、作ってみました。
<h2>新着</h2>
<div id="new-entries">
<?php
for ($i = 0; $i < get_blog_count(); $i++) :
$blog_list = get_blog_list();
$blog_list = $blog_list[$i]['blog_id'];
if ($blog_list != 1) :
$output_blogs = '<h3><a href="' .
get_blog_option($blog_list,'siteurl') . '">' .
get_blog_option($blog_list,'blogname') .
'</a></h3>';
$output_blogs .= '<p class="blog-description">' .
get_blog_option($blog_list,'blogdescription') .
'</p>';
echo $output_blogs;
$wpdb->set_blog_id($blog_list);
query_posts("showposts=3&post_status=publish");
?>
<?php if (have_posts()) : while(have_posts()) : the_post();?>
<div class="new-entry-bd">
<h4><a href="<?=$post->guid;?>"><?=$post->post_title;?></a></h4>
<?php if (trim(strip_tags($post->post_content)) != '')
>
<p><?php echo mb_substr(strip_tags($post->post_content), 0, 100);?> [...]</p>
<?php endif;?>
<p class="update"><?php echo date('Y年n月j日', strtotime($post->post_date));?></p>
</div>
<?php endwhile; endif; endif; endfor;?>
</div>
for ($i = 0; $i < get_blog_count(); $i++) : [...] endfor;
get_blog_count()でブログ数を取得します。ブログの数だけループさせます。
$blog_list = get_blog_list();
get_blog_list()で各ブログの情報を取得します。
if ($blog_list != 1) : [...] endif;
ホームページのブログを除きます。
get_blog_option($blog_list,'siteurl')
get_blog_option()で各ブログの設定を返します。第2引数にsiteurlを指定してブログのURLを返します。
get_blog_option($blog_list,'blogname')
ブログ名を返します。
get_blog_option($blog_list,'blogdescription')
ブログの説明を返します。
$wpdb->set_blog_id($blog_list);
ブログを指定してデータベースに接続します。
query_posts("showposts=3&post_status=publish");
公開記事3件を取得します。
以下のように表示されます。



