TOPページでカテゴリー別の投稿一覧表示方法

WordPressでサイトを作成していて、トップページに投稿(ブログ)一覧を表示させる際に、特定のカテゴリーだけを表示したい時がありますよね。その方法です。

front-page.phpやindex.phpの表示させたい場所に下のコードを設置します。

<?php query_posts("cat=11&showposts=5"); ?>
    <?php if(have_posts()): while(have_posts()): the_post(); ?>
        <?php the_time('Y/m/d'); ?>
        <a href="<?php the_permalink(); ?>"><?php echo mb_substr($post->post_title, 0, 16).'...'; ?></a>
    <?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

Point

1行目のcat=11で表示させたいカテゴリーIDを指定。
showposts=5で表示件数を指定します。

3行目は日付を表示させるコードです。
上記の例ではyyyy/mm/dd形式で表示されます。
年月日表示させたい場合はコードをthe_time('Y年m月d日');にしてください。

4行目はタイトルを表示させるコードです。
上記コードの例では表示させるのは16文字目までで、それ以降は「...」で省略されます。
タイトルを文字数で表示制限せずに全て表示する場合は<?php the_title(); ?>とします。

応用編

上のコードだと16文字以上でも以下でもタイトルの後ろに「...」が付いてしまいます。16文字以下の場合にはタイトルに「...」を付ける必要がありませんので、その場合のコードはこうなります。
(※コードを分かりやすくするためにaタグによるパーマリンクはあえて外しています。)

<?php if(mb_strlen($post->post_title)>16): ?>
    <?php echo mb_substr($post->post_title, 0, 16).'...'; ?>
<?php else: ?>
    <?php the_title(); ?>
<?php endif; ?>

何をやってるかはコードを見れば分かると思いますが、上のPointで説明した2つのタイトル表示の合わせ技です。