Written by Kasumi

WordPressで月別アーカイブリストを表示する方法【カスタマイズ自由】

月別アーカイブリストを表示する方法を知りたい。

wp_get_archivesを使わず、html部分を自由にカスタマイズ可能な形式で表示したい。

本記事ではこのような悩みを解決。

実装方法について解説します。

wp_Queryを使って月別アーカイブリストを表示

	<?php
  $year_month = Null;
  $year = Null;
  $month = Null;
  $args = array(
    'post_type' => 'post', //投稿タイプを指定
    'orderby' => 'date', // 日付順で表示
    'order' => 'DESC',
    'posts_per_page' => -1 // すべての投稿を表示
  );
  $the_query = new WP_Query($args);
  ?>
  <ul>
    <?php if ($the_query->have_posts()) : ?>
      <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
        <?php if ($year_month != get_the_date('Y.m')) : // 同じ年月でなければ表示 
          $year_month = get_the_date('Y.m');
          $year = get_the_date('Y'); // 年の取得
          $month = get_the_date('m'); // 月の取得
        ?>
          <!-- 月別アーカイブリスト -->
          <li><a href="<?= home_url(); ?>/<?php echo $year; ?>/<?php echo $month; ?>/"><?php echo $year; ?>年<?php echo $month; ?>月</a></li>
        <?php endif; ?>
      <?php endwhile; ?>
    <?php else : ?>
    <?php endif; ?>
    <?php wp_reset_query(); ?>

wp_get_archivesを使わず、月別アーカイブリストを表示するサンプルコードです。

wp_Queryを使う事でhtml部分を細かくカスタマイズ可能な月別アーカイブリストを表示できます。

コードの詳細は以下の通りです。

wp_Queryを使って、記事データを取得。

wp_Queryループ内で$year = get_the_date(‘Y’);$month = get_the_date(‘m’);$year_month = get_the_date(‘Y.m’);を変数定義し、記事の年月データを取得。

if ($year_month!= get_the_date(‘Y.m’){}を条件式とし、同じ年月以外は月別アーカイブリストを追加する処理を加えればOKです。

実装環境に合わせ、月別アーカイブページへのリンク・年月をhtmlを使ってカスタマイズ表示します。

$year変数を使えば年、$month変数で月を表示できます。

以上で実装完了です。

まとめ

月別ではなく、年別でアーカイブリストを表示したい方は以下記事をご参考ください。

以上で解説を終わります。

目次

関連記事

WordPress

WordPress自作テーマにカスタマイズメニューを追加する方法【プラグイン不要】

2022.04.30
3780
WordPress

【WordPress】カスタムタクソノミーのURL階層にカスタム投稿タイプのスラッグを追加する方法

2023.02.16
1576
WordPress

トップやアーカイブの記事一覧で1ページ目と2ページ目以降で条件分岐する方法

更新日:2019.11.28
651
WordPress

【簡単】WordPressで編集するテンプレートファイルを一目で確認する方法

2022.09.07
702