WordPress カスタム投稿タイプ 年別アーカイブページの作成方法
WordPressのカスタム投稿タイプで年別のアーカイブページを作成する方法です。
企業のニュース情報やお知らせページなどは、情報が多いとあっという間に一覧からいなくなってしまいますね。年別のアーカイブページを用意しておけば情報を探しやすいですし、その年に何があったかも明確にわかります。
ここでは WordPressのカスタム投稿タイプで年別のアーカイブページを作成する方法 を紹介します。
Sponsored Links
年別アーカイブリストの表示方法
ここからはカスタム投稿のスラッグが news としている場合のサンプルとなります。
まずはカスタム投稿タイプの編集画面で、アーカイブあり=真(True)であることを確認します。
年別アーカイブリストの表示には wp_get_archives()
もしくは WP_Query
を使ってリスト作成する方法があります。
Sponsored Links
wp_get_archivesを使う
wp_get_archivesを使うのは一般的ですね。
下記のコードを貼り付けます。
: <ul class="yearly-list"> <?php wp_get_archives( 'post_type=news&type=yearly&show_post_count=1' ); ?> </ul>
するとこんな感じで表示されます。
type=yearlyをtype=monthlyに変えれば月別に表示できますし、show_post_count=1を消せば、年の右側の投稿件数を消せます。
WP_Queryを使う
もう少しhtmlをカスタマイズして使いたいよってことであれば下記のコードを使ってください。
<?php $year=NULL; $args = array( 'post_type' => 'news', // 投稿タイプの指定 'orderby' => 'date', // 日付順 'posts_per_page' => -1 // すべての投稿を表示する ); $the_query = new WP_Query($args); if ( $the_query->have_posts() ) { echo '<ul class="year-list">'; while ($the_query->have_posts()): $the_query->the_post(); // 同じ年の場合 if ( $year != get_the_date('Y') ) { // 年を取得 $year = get_the_date('Y'); // 年別アーカイブリストの表示 echo '<li><a href="'.home_url( '/', 'http' ).'news/'.$year.'">'.$year.'年</a></li>'; } endwhile; echo '</ul>'; wp_reset_postdata(); } ?>
すると、こんな感じで表示されます。
このコード、件数が膨大だと表示が遅いかもしれないなー。まあ、Distinctするのは一般的じゃないからいいのかなっと。
Sponsored Links
まとめ
WordPressのカスタム投稿タイプで年別のアーカイブページを作成する方法を紹介しました。
年別/月別のアーカイブページはお客様からの需要が結構高いんですよね。それほど難しい作業ではないのでサクッと作れましたよ。
おつかれさまでした。
Sponsored Links