我正在运行一个wordpress站点,该站点带有基本的网格插件,可以显示指向我创建的帖子的链接。帖子是在一段时间内(天/周/月)发生的事件。我已经为“eg startdate”和“eg enddate”创建了一些自定义元字段,现在我需要告诉网格,我只想在以下位置显示帖子:
eg开始日期<;=todayANDeg enddate>=今天
我已经能够使用以下代码过滤网格,只显示例如enddate>=today的事件:
function eg_mod_query($query, $grid_id){
if($grid_id == 9) {
$query[\'meta_query\'] = array(
\'key\' => \'eg-enddate\',
\'value\' => date("d/m/Y"),
\'compare\' => \'>\',
\'type\' => \'numeric\'
);
$query[\'meta_key\'] = \'eg-enddate\';
$query[\'meta_value\'] = date("d/m/Y");
$query[\'meta_value_num\'] = date("d/m/Y");
$query[\'meta_compare\'] = \'>\';
}
return $query;
}
我现在如何修改这段代码,以便在限制将来“eg enddate”的帖子的同时,也过滤过去或今天“eg startdate”的帖子,同时确保所有数据最终存储在$query中?
感谢您的帮助,谢谢!!:)
最合适的回答,由SO网友:Aniruddha Gawade 整理而成
可以将带有多个查询的数组传递给meta_query
.
类似于:
\'meta_query\' => array(
array(
\'key\' => \'eg-enddate\',
\'value\' => date("d/m/Y"),
\'compare\' => \'>\',
\'type\' => \'numeric\'
),
\'relation\' => \'AND\',
array(
\'key\' => \'eg-startdate\',
\'value\' => date("d/m/Y"),
\'compare\' => \'<\',
\'type\' => \'numeric\'
)
)
有关更多信息,请查阅文档:
https://codex.wordpress.org/Class_Reference/WP_Meta_Query注意:代码未经尝试或测试,因此请注意语法错误。