使用2个或更多条件查询WordPress中的帖子

时间:2017-01-21 作者:kassinopious

我正在运行一个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中?

感谢您的帮助,谢谢!!:)

1 个回复
最合适的回答,由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

注意:代码未经尝试或测试,因此请注意语法错误。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请