gpt4 book ai didi

mysql - 使用 WP 元查询按开始和结束日期显示自定义帖子类型

转载 作者:行者123 更新时间:2023-11-30 23:04:21 25 4
gpt4 key购买 nike

我有一个名为事件 的自定义帖子类型,以及一个显示一个月事件的页面。每个事件都有 2 个自定义字段 start_datefinish_date,将日期存储为 yymmdd

如果一个事件跨越两个不同的月份,它只会出现在开始日期的月份。我也坚持如何在完成日期的月份显示它。例如,如果我有一个开始日期为 19/03/2014 且结束日期为 19/04/2013 的事件,它应该出现在三月和四月。

我正在使用这段代码:

// Get chosen month to display from URL
$events_month = sanitize_text_field($_GET["month"]);
$events_year = sanitize_text_field($_GET["year"]);

// Convert chosen month to display to a timestamp
$ts = strtotime("$events_month $events_year");

// Create chosen month start end end dates to use for query
$month_start_date = date('Ym01', $ts);
$month_end_date = date('Ymt', $ts);

$args = array(
'post_type' => 'events',
'posts_per_page' => 50,
'order' => 'ASC',
'orderby' => 'meta_value_num',
'meta_key' => 'start_date',
'meta_query' => array(
array(
'key' => 'start_date',
'value' => array($month_start_date, $month_end_date),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
)
);

$events = new WP_Query($args);

最佳答案

我想您需要在 meta_query 中使用 OR 来检查 start_date 是否在选定的月份 end_date 是在选定的月份...

尝试这样的事情:

'meta_query' => array(

'relation' => 'OR',

array(
'key' => 'start_date',
'value' => array( $month_start_date, $month_end_date ),
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
),

array(
'key' => 'finish_date',
'value' => array( $month_start_date, $month_end_date ),
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
),
)

查看 WP Codex 了解更多详情:/Class_Reference/WP_Query#Custom_Field_Parameters

关于mysql - 使用 WP 元查询按开始和结束日期显示自定义帖子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22503403/

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