首页 > 解决方案 > 我可以在今天的 X 天内进行 WP 查询吗

问题描述

I've got a little bit of code that returns some info from a CPT (pre_jobs) when a certain taxonomy is selected (repeat) and sorts it by an ACF date field (pre_job_due_date)

我想做的是过滤这些结果,以便只有那些显示在不久的将来 - 我们可以联系客户预订工作,比如在今天日期的 6 周内,然后更改为当我们等待回复或工作被预订时,使用不同的分类法。基本上是一个自定义的待办事项列表。我将如何添加显示这些的过滤器?有些工作会在 5 年内重复,所以我不想要一个庞大的列表。到目前为止,我有:

$posts = get_posts(array(
    'post_type'         => 'pre_jobs',
    'posts_per_page'        => -1,
    'meta_key'          => 'pre_job_due_date',
    'orderby'           => 'meta_value',
    'order'             => 'ASC',
    'tax_query' => array(
        array(
            'taxonomy' => 'pre_job_status',
            'field' => 'slug',
            'terms' => array( 'repeat' )
        ),
    ),
));

提前致谢

标签: phpwordpressadvanced-custom-fields

解决方案


使用 Php 计算 6 周内的日期后,您可以meta_query在查询中使用 wp 参数

$before_date = date("Ymd", strtotime("+6 weeks"));

$posts = get_posts(array(
    'post_type'         => 'pre_jobs',
    'posts_per_page'        => -1,
    'meta_key'          => 'pre_job_due_date',
    'orderby'           => 'meta_value',
    'order'             => 'ASC',
   'meta_query' => array(
        'relation'      => 'AND',
        array(
     'key' => 'pre_job_due_date',
     'value' => $before_date, 
     'compare' => '<', 
     ),
   ),
    'tax_query' => array(
        array(
            'taxonomy' => 'pre_job_status',
            'field' => 'slug',
            'terms' => array( 'repeat' )
        ),
    ),
));

推荐阅读