元查询在实时站点上不起作用(_Q)

时间:2021-05-12 作者:Michael Kroißmayr

我有以下query\\u参数来获取事件:->;要么是单个事件(仅开始日期),因此它会检查开始日期是否介于月初和月末之间->;或者它是一个持续时间事件(开始+结束日期),因此它检查开始日期是否小于月初,结束日期是否大于月初(-gt;如果事件当前正在进行,则输出)

$args = array(
    \'numberposts\'   => -1,
    \'post_type\'     => \'event\',
    \'orderby\' => \'meta_value\',
    \'meta_query\' => array(
        \'relation\' => \'OR\',
        // single event
        array(
            \'relation\' => \'AND\',
            array(
                \'key\' => \'date_start\',
                \'value\' => $firstDayThisMonth,
                \'compare\' => \'>=\'
            ),
            array(
                \'key\' => \'date_start\',
                \'value\' => $lastDayThisMonth,
                \'compare\' => \'<=\'
            )
        ),
        // duration event
        array(
            \'relation\' => \'AND\',
            array(
                \'key\' => \'date_start\',
                \'value\' => $firstDayThisMonth,
                \'compare\' => \'<=\'
            ),
            array(
                \'key\' => \'date_end\',
                \'value\' => $firstDayThisMonth,
                \'compare\' => \'>=\'
            )
        )
    ),
    \'order\' => \'ASC\'
);
这在我的dev服务器上运行得非常完美,但在生产环境中,它不再输出任何事件。我必须删除//duration事件数组才能输出单个事件,但这两个查询不能一起工作。有什么想法吗?

1 个回复
SO网友:Mike van den Hoek

我的声誉太低,无法发表评论,所以我会这样做。

确保“value”中的日期格式与数据库字段中的日期格式相同。也不要忘记添加“type”=>;\'查询的日期。我过去使用过的一些代码的一个示例:

$queryArgs[\'meta_query\'] = [
    [
        \'relation\' => \'OR\',
        [
            \'key\' => \'_ys_brochures-offline-date\',
            \'value\' => date(\'Y-m-d\'),
            \'compare\' => \'>\',
            \'type\' => \'DATE\' // notice the \'DATE\'
        ],
        [
            \'key\' => \'_ys_brochures-offline-date\',
            \'compare\' => \'NOT EXISTS\',
        ],
    ]
];

相关推荐