はじめに
以下の質問に回答します。
今年の投稿のみを一覧に表示し、「アーカイブ」ウィジェットでは過去の年度の投稿だけを表示します。
この記事では、この方法について説明します。
完成イメージ

実装手順
以下の手順で実装します。
- ラベルPHPを追加(アーカイブを年表示)
以下のコードをfunctions.phpに追加します。
add_filter('widget_archives_args', function ($args) { $args['type'] = 'yearly'; return $args; }); - ラベルPHPを追加(過去年のみアーカイブに表示)
以下のコードをfunctions.phpに追加します。
add_filter('getarchives_where', function ($where, $args) { global $wpdb; // 現在の年を取得 $current_year = date('Y'); // 現在の年を除外する条件を追加 $where .= $wpdb->prepare(" AND YEAR(post_date) < %d", $current_year); return $where; }, 10, 2); - ラベルPHPを追加(現在年のみを投稿一覧に表示)
以下のコードをfunctions.phpに追加します。
add_action('pre_get_posts', function ($query) { if (is_admin() || !$query->is_main_query()) { return; } if ($query->is_home()) { $year = current_time('Y'); $query->set('date_query', [ [ 'year' => $year, ], ]); } });
さいごに
2025年の場合、投稿ページのページ送りに2024年の投稿が表示されることがあります。
これを防ぎ、2025年の投稿のみを表示するには、もう一工夫が必要です。
今回は、WP_Query()の多くのパラメータの中から、表示期間を指定するパラメータを試してみました。


