WordPress カスタムフィールドの日付の値で記事を絞り込んで表示する方法

WordPress カスタムフィールドの日付の値で記事を絞り込んで表示する方法を紹介します。
例えば、日付や特定の数字で絞り込んで表示したいときに便利な方法です。

  1. カスタムフィールドの日付の値で記事を絞り込んで表示

カスタムフィールドの日付の値で記事を絞り込んで表示

カスタムフィールドの日付の値で記事を絞り込んで表示する方法紹介します。
例えばカスタムフィールド名が「発売日」、戻り値が「Y-m-d H:i:s」の場合、今日の日付から90日前の記事を、発売日順で表示する場合は、サブループの値を次のように設定します。
サブループの記載方法は「WordPress メインループとサブループの表示方法」をご覧ください。

<?php // カスタムフィールドの値で投稿をソートする
echo '今日の日付:'.$today = wp_date('Y-m-d H:i:s');
echo '〜90日前の日付:'.$past_date = wp_date('Y-m-d H:i:s', strtotime('-90 days'));
$args = array(
'post_type' => 'products', // 投稿タイプの指定
'orderby' => 'meta_value', // カスタムフィールド値でのソート
'meta_key' => '発売日', // ソートに使用するカスタムフィールド
'order' => 'DESC', // 降順ソート
'posts_per_page' => -1, // すべての投稿を表示
'meta_query' => array(
array(
'key' => '発売日', // フィールド名の指定
'value' => array($past_date, $today), // 範囲の指定
'compare' => 'BETWEEN', // 範囲内で比較
'type' => 'DATE' // カスタムフィールドの値が日付であることを宣言
)
)
);
$the_query = new WP_Query($args); if($the_query->have_posts()):
?>

まとめ

WordPress カスタムフィールドの日付の値で記事を絞り込んで表示する方法を紹介しました。