is_home()が効かない!

いわゆるブログ形式ではないサイトをWordPressで構築していると、トップページには特定のカテゴリー(「ニュース」など)だけの最新記事を表示したい場合がある。その場合は、次のテンプレートタグを記述することで実現できる。

// “news”というカテゴリーを10件表示
<?php query_posts('category_name=news&showposts=10'); ?>

<?php while (have_posts()) : the_post(); ?>
<!-- ここがループ部分 -->
<?php endwhile;?>

しかし、これの問題点は、このページが「news」のカテゴリーアーカイブのページになってしまうことだ。従って、is_home()が利用できなくなってしまう。
それでは大いに困るので、こんな風に書くべき。

<?php $my_query = new WP_Query('category_name=special_cat&showposts=10'); ?>

<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<!-- ここがループ部分 --?>
<?php endwhile;?>

こうすれば、is_home()が効かなくなる事態は回避できる。
これはhttp://wpdocs.sourceforge.jp/The_Loopに書いてあるけど、まだ未翻訳の部分だったのでここに書いておこう。