gpt4 book ai didi

php - 如何使用 "if then"排序逻辑编写 WordPress 元查询

转载 作者:行者123 更新时间:2023-11-29 10:07:21 24 4
gpt4 key购买 nike

摘要

在我的 WordPress 版本中,我有一个由自定义事件帖子组成的日历。这些帖子有两种设置:单日事件和多日事件。这被设置为 bool 值。我需要抓取这些帖子,并根据日期对它们进行排序。

问题

我面临的问题是,当我查询后端时,我不知道要按哪个日期排序。我尝试过使用 bool 值来创建一种“if then”逻辑,但没有成功。

故障排除

What have I tried so far?

这是我一直试图开始工作的查询。但运气不佳

$events_query = new WP_Query (array(
'post_type' => 'events',
'posts_per_page' => '-1',
'meta_query' => array (
'relation' => 'AND',
array (
'key' => 'multiple_day_event',
'value' => '1',
'compare' => '=',
),
array (
'key' => 'start_date',
'value' => date("Ymd"),
'compare' => '>',
),
'relation' => 'OR',
array (
'key' => 'multiple_day_event',
'value' => '0',
'compare' => '=',
),
array (
'key' => 'date',
'value' => date("Ymd"),
'compare' => '>',
)
)
));

Can I use a single date instead of two separate dates?

不,据我所知。使用单个日期代替两者会导致我的后端出现其他问题。

解决方案

简而言之,我需要一个能够使用 ORANDOR 逻辑的查询。有什么想法吗?

最佳答案

根据WP_Meta_Query文档:

Nested arrays can be used to construct complex queries

$meta_query_args = array(
'relation' => 'OR', // Optional, defaults to "AND"
array(
'key' => '_my_custom_key',
'value' => 'Value I am looking for',
'compare' => '='
),
array(
'relation' => 'AND',
array(
'key' => '_my_custom_key_2',
'value' => 'Value I am looking for 2',
'compare' => '='
),
array(
'key' => '_my_custom_key_3',
'value' => 'Value I am looking for 3',
'compare' => '='
)
)
);
$meta_query = new WP_Meta_Query( $meta_query_args );

所以你的例子看起来像这样:

$events_query = new WP_Query( array(
'post_type' => 'events',
'posts_per_page' => '-1',
'meta_query' => array (
'relation' => 'AND',
array(
'relation' => 'AND',
array (
'key' => 'multiple_day_event',
'value' => '1',
'compare' => '=',
),
array (
'key' => 'start_date',
'value' => date("Ymd"),
'compare' => '>',
),
),
array(
'relation' => 'OR',
array (
'key' => 'multiple_day_event',
'value' => '0',
'compare' => '=',
),
array (
'key' => 'date',
'value' => date("Ymd"),
'compare' => '>',
)
)
)
) );

关于php - 如何使用 "if then"排序逻辑编写 WordPress 元查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51680865/

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