我觉得我已经非常接近这一点了,但查询一直显示为空。基本上,我正在尝试查询两个日期之间的自定义值。如果开始日期小于当前日期且结束日期大于或等于当前日期,则应返回记录:
$args = array(
\'taxonomy\' => \'exhibition_type\',
\'term\' => \'faculty\',
\'numberposts\' => 10,
\'post_type\' => \'exhibitions\',
\'meta_key\' => \'start_date_of_event\',
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'start_date_of_event\',
\'value\' => $current,
\'compare\' => \'<\'
),
array(
\'key\' => \'end_event_date\',
\'value\' => $current,
\'compare\' => \'>=\'
)
),
\'order_by\' => \'meta_value_num\',
\'order\' => \'ASC\',
\'paged\' => $paged
);
我现在使用的代码不断出现0个结果,我现在陷入了困境。任何帮助都将不胜感激。
最合适的回答,由SO网友:marfarma 整理而成
Update - it may be supported in a meta_query. I need more information - see below.
您不能使用meta\\u查询,它不受支持
Do you have data in meta_data fields? - WordPress查询将排除缺少orderby(或meta\\u查询)字段的帖子。WordPress向SQL查询中添加了一个连接条件,以支持orderby或query字段,即内部连接(仅包含带有连接字段的帖子的连接)
如果存在orderby“内部联接”问题,如果您需要包含可能缺少此字段的帖子,那么您可以filter the join and orderby clauses of the generated SQL
如果仍然没有得到结果,那么查看正在生成的实际SQL将非常有用。添加
<pre><?php echo your_query_object->request; ?></pre>
以显示它,并将其作为更新添加到问题中。
SO网友:sanchothefat
您是否尝试过为meta\\u查询指定数据的“类型”?我假设您使用的是时间戳,因为我以前写过这个,并且它可以工作。
例如:
$args = array(
...
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'start_date_of_event\',
\'value\' => $current,
\'compare\' => \'<\',
\'type\' => \'NUMERIC\'
),
array(
\'key\' => \'end_event_date\',
\'value\' => $current,
\'compare\' => \'>=\',
\'type\' => \'NUMERIC\'
)
),
...
);
如果WP\\u Query支持对不同元数据类型(字符串或数字除外)进行排序,那就太棒了,那么您实际上可以使用适当的日期和日期时间比较:(