gpt4 book ai didi

wordpress - 带有2个自定义字段的WP_Query meta_query日期范围

转载 作者:行者123 更新时间:2023-12-04 17:36:22 30 4
gpt4 key购买 nike

我有一个自定义帖子类型“事件”,其中包含start_date和end_date的自定义字段。我正在尝试列出即将发生的事件。如果我仅查询start_date> =今天的事件,则可以正常工作。如果我添加一个meta_query来说“AND”所有具有end_date <=今天的事件-它不会返回任何内容。

我的自定义字段(start_date,end_date)存储为unix时间戳,这就是为什么我使用“NUMERIC”和“meta_value_num”的原因。 $ today是当前日期的时间戳。以下是我正在尝试做的事的示例...拔出头发-任何帮助将不胜感激!

这项工作:

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

)
);

当我为meta_query添加第二个数组时-不起作用:
$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',
),

)
);

当我在主查询中使用meta_compare和一个meta_query时-不起作用:
$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' => 'end_date',
'value' => $today,
'compare' => '<=',
'type' => 'date',
),

)
);

当我在主查询中使用meta_compare和多个meta_queries时-不起作用:
$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',
),

)
);

最佳答案

这就是我使用它的方式,它对我来说很好用。

$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();

食典上最重要的说明。

The 'type' DATE works with the 'compare' value BETWEEN only if the date is stored at the format YYYYMMDD and tested with this format.

关于wordpress - 带有2个自定义字段的WP_Query meta_query日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657442/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com