Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress WP_Query meta_带有2个自定义字段的查询日期范围_Wordpress_Date Range - Fatal编程技术网

Wordpress WP_Query meta_带有2个自定义字段的查询日期范围

Wordpress WP_Query meta_带有2个自定义字段的查询日期范围,wordpress,date-range,Wordpress,Date Range,我有一个自定义帖子类型“事件”,其中包含开始日期和结束日期的自定义字段。我试着把即将发生的事情列一个简单的清单。如果我只查询开始日期>=今天的事件,它可以正常工作。如果我在meta_查询中添加“AND”end_date='的所有事件, '类型'=>'数值', ), 排列( '键'=>'结束日期', “价值”=>今天的美元, “比较”=>“=”, 'orderby'=>'meta_value_num', “订单”=>“ASC”, “元查询”=>数组( '关系'=>'和', 排列( '键'=>'结束

我有一个自定义帖子类型“事件”,其中包含开始日期和结束日期的自定义字段。我试着把即将发生的事情列一个简单的清单。如果我只查询开始日期>=今天的事件,它可以正常工作。如果我在meta_查询中添加“AND”end_date='的所有事件, '类型'=>'数值', ), 排列( '键'=>'结束日期', “价值”=>今天的美元, “比较”=>“=”, 'orderby'=>'meta_value_num', “订单”=>“ASC”, “元查询”=>数组( '关系'=>'和', 排列( '键'=>'结束日期', “价值”=>今天的美元, “比较”=>“=”, 'orderby'=>'meta_value_num', “订单”=>“ASC”, “元查询”=>数组( '关系'=>'和', 排列( '键'=>'开始日期', “价值”=>今天的美元, '比较'=>'>=', '类型'=>'数值', ), 排列( '键'=>'结束日期', “价值”=>今天的美元,
“比较”=>“不确定您在尝试什么,但在选择从今天或将来开始(开始日期>=$today)到今天或过去结束(结束日期以下是我最后要做的事情时,似乎不返回任何内容是合乎逻辑的:

$args = array(  
    'post_type' => 'events',
    'posts_per_page' => -1,
    'meta_key' => 'start_date',
    'meta_value_num' => $yesterday,
    'meta_compare' => '<=',
    'orderby' => 'meta_value_num',
    'order' => 'ASC',
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => 'start_date',
            'value' => array($first_minute,$last_minute),
            'compare' => 'BETWEEN',
            'type' => 'NUMERIC',
        ),
        array(
            'key' => 'end_date',
            'value' => $yesterday,
            'compare' => '>=',
            'type' => 'NUMERIC',
        ),
        array(
            'key' => 'start_date',
            'value' => $yesterday,
            'compare' => '>=',
            'type' => 'NUMERIC',
        ),


    )
)
$args=数组(
“post_类型”=>“事件”,
“每页帖子数”=>-1,
“元密钥”=>“开始日期”,
“meta_value_num”=>昨天$,
“元比较”=>“=”,
'类型'=>'数值',
),
排列(
'键'=>'开始日期',
“value”=>昨天美元,
'比较'=>'>=',
'类型'=>'数值',
),
)
)

这将获取当前月份的事件。我为每月的第一分钟、最后一分钟和“昨天”(即昨天的11:59:59)输入变量。

这就是我使用它的方式,它对我来说工作正常

$the_query = new WP_Query(array(
    'post_type' => 'job',
    'posts_per_page'   => 25,
    'meta_query' => array(
        array(
            'key' => 'published_date',
            'value' => array('20140401','20140405'),
            'compare' => 'BETWEEN',
            'type' => 'DATE'
        )
    )
));


if ($the_query->have_posts()) {

    echo '<ul>';
    while ($the_query->have_posts()) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';

} else {
    echo 'Sorry! No Posts';
}

wp_reset_postdata();
$thew_query=新的WP_查询(数组)(
“职位类型”=>“职务”,
“每页帖子数”=>25,
“元查询”=>数组(
排列(
'键'=>'发布日期',
'值'=>数组('20140401','20140405'),
'比较'=>'之间的',
'类型'=>'日期'
)
)
));
if($the\u query->have\u posts()){
回声“
    ”; while($the\u query->have\u posts()){ $the_query->the_post(); 回显“
  • ”。获取标题(); } 回声“
”; }否则{ echo‘对不起!没有帖子’; } wp_reset_postdata();
法典中最重要的注释

仅当日期以YYYYMMDD格式存储并使用此格式测试时,“type”日期才与“compare”值一起使用


Alexandru Florentin Popescu是对的!请使用您的代码执行以下操作:

$args = array(  
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
    'relation' => 'AND',
    array(
        'key' => 'start_date',
        'value' => $today,
        'compare' => '<=',
        'type' => 'NUMERIC',
    ),
    array(
        'key' => 'end_date',
        'value' => $today,
        'compare' => '>=',
        'type' => 'NUMERIC',
    ),

));
$args=数组(
“post_类型”=>“事件”,
“每页帖子数”=>-1,
“元密钥”=>“开始日期”,
'orderby'=>'meta_value_num',
“订单”=>“ASC”,
“元查询”=>数组(
'关系'=>'和',
排列(
'键'=>'开始日期',
“价值”=>今天的美元,
“比较”=>“=”,
'类型'=>'数值',
),
));
您只需在两个数组中更改键“比较”

$args = array(  
    'post_type' => 'events',
    'posts_per_page' => -1,
    'meta_key' => 'start_date',
    'meta_value_num' => $today,
    'meta_compare' => '>=',
    'orderby' => 'meta_value_num',
    'order' => 'ASC',
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => 'start_date',
            'value' => $today,
            'compare' => '>=',
            'type' => 'NUMERIC',
        ),
        array(
            'key' => 'end_date',
            'value' => $today,
            'compare' => '<=',
            'type' => 'NUMERIC',
        ),

    )
);
$args = array(  
    'post_type' => 'events',
    'posts_per_page' => -1,
    'meta_key' => 'start_date',
    'meta_value_num' => $yesterday,
    'meta_compare' => '<=',
    'orderby' => 'meta_value_num',
    'order' => 'ASC',
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => 'start_date',
            'value' => array($first_minute,$last_minute),
            'compare' => 'BETWEEN',
            'type' => 'NUMERIC',
        ),
        array(
            'key' => 'end_date',
            'value' => $yesterday,
            'compare' => '>=',
            'type' => 'NUMERIC',
        ),
        array(
            'key' => 'start_date',
            'value' => $yesterday,
            'compare' => '>=',
            'type' => 'NUMERIC',
        ),


    )
)
$the_query = new WP_Query(array(
    'post_type' => 'job',
    'posts_per_page'   => 25,
    'meta_query' => array(
        array(
            'key' => 'published_date',
            'value' => array('20140401','20140405'),
            'compare' => 'BETWEEN',
            'type' => 'DATE'
        )
    )
));


if ($the_query->have_posts()) {

    echo '<ul>';
    while ($the_query->have_posts()) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';

} else {
    echo 'Sorry! No Posts';
}

wp_reset_postdata();
$args = array(  
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
    'relation' => 'AND',
    array(
        'key' => 'start_date',
        'value' => $today,
        'compare' => '<=',
        'type' => 'NUMERIC',
    ),
    array(
        'key' => 'end_date',
        'value' => $today,
        'compare' => '>=',
        'type' => 'NUMERIC',
    ),

));