WordPressのアーカイブページで投稿を年度別に一覧表示したかった。

こんにちは。
ブログを移行してはじめての投稿です。

今回は、クライアントワークで「施工実績」をカスタム投稿タイプで構築し、そのアーカイブページに年度別投稿一覧を表示したい!と勝手に思いついて実装したのでメモ。

だってね、絶対そのほうが見やすいと、思ったんだよ。

archive-image

今回の条件

カスタム投稿タイプ works(施工実績)
カスタムフィールド works_period(期間)、works_orderer(発注者)
記事タイトル 工事名
表示方法 tableで期間、発注者、工事名を表示!

※カスタムフィールドプラグイン:Advanced Custom Fields

実際のコード

<?php
    function archiveFunc($year){
        $newslist = new WP_Query( array(
        'post_type' => 'works',
        'posts_per_page' => -1,
        'year' => $year
        ));
?>
<h3><?php echo $year; ?>年</h3>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody>
    <tr>
        <th width="15%">■期間</th>
        <th width="20%">■発注者</th>
        <th>■工事名</th>
    </tr>
    <?php
        if($newslist->have_posts()):
        while($newslist->have_posts()):
        $newslist->the_post();
    ?>
    <tr>
        <td><?php the_field('works_period'); ?></td>
        <td><?php the_field('works_orderer'); ?></td>
        <td><strong><?php the_title(); ?></strong></td>
    </tr>
<?php
    endwhile;
    endif;
    wp_reset_postdata();
?>
</tbody>
</table>
<?php
    }
    $thisyear = date('Y');
    for ($year=$thisyear; $year >= 2010; $year--) { 
        archiveFunc($year);
    }
?>

関数の中で、変数に入った「年」の投稿一覧を表示するコードを書きます。
そして指定した「年」から現在の「年」までの記事を出力するようにfor文で関数を回しています。

参考にした記事

[Wordpress]特定のカテゴリーで年ごとに記事一覧を表示する方法 – Qiita

助かりました〜。

One thought to “WordPressのアーカイブページで投稿を年度別に一覧表示したかった。”

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA