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でデフォルトjQueryを読み込ませない方法

2022.06.22
66
WordPress

wp_queryを使って記事一覧を好きな所に出力しよう【ワードプレス】

更新日:2019.11.27
125
WordPress

WordPressで投稿機能からタグ表示を消す方法

2022.07.21
59
WordPress

【WordPress】プラグイン無しでランキングを実装する方法

2022.06.24
133