比较为日期时使用meta_key的GET_POST()

时间:2017-03-26 作者:PKHunter

这与question found here. 这个问题暗示了WordpressWP_Query example, 这很有帮助,但对我没用。

我的代码如下:

    $posts = get_posts(array(
        \'post_type\'         => \'events\',
        \'posts_per_page\'    => -1,
        \'meta_key\'          => \'from_datetime\',
        \'meta_value\'        => date( "F d, Y g:i a" ), 
        \'meta_compare\'      => \'>\',
        \'orderby\'           => \'meta_value\',
        \'order\'             => \'ASC\'
    ));
自定义字段是在我们的博客中使用ACF创建的。这个from_datetime 字段显示如下:

April 18, 2017 2:30 pm
所以我把它翻译成日期命名法:

date( "F d, Y g:i a" )
事件是自定义的帖子类型。基本上,我想展示即将到来的两个未通过的事件。因此,这与WP\\u查询页面上的示例非常接近,但上述操作仍然不起作用。查询不返回任何内容。我知道如果我删除meta_value 在上面的内容中,有四个事件是超越“现在”的。

有没有想过我可能做错了什么?根据WP的文档,该查询似乎是正确的。非常感谢。

2 个回复
最合适的回答,由SO网友:Abdul Awal Uzzal 整理而成

我认为你的询问有误。请尝试以下操作:

$posts = get_posts(array(
    \'post_type\'         => \'events\',
    \'posts_per_page\'    => -1,
    \'meta_query\'        => array(
        \'meta_key\'          => \'from_datetime\',
        \'type\'              => \'DATETIME\',  // You can also try changing it to TIME or DATE if it doesn\'t work
        \'meta_value\'        => date( "F d, Y g:i a" ),
        \'meta_compare\'      => \'>\',
    ),
    \'orderby\'           => \'meta_value\',
    \'order\'             => \'ASC\'
));

SO网友:Paul \'Sparrow Hawk\' Biron

您是在使用ACF Pro(例如,使用它的“日期和时间选择器”字段类型)还是在“正常”ACF中添加日期/时间字段类型的插件之一(例如。,Date & Time Picker for Advanced Custom Fields).

如果是前者,则将日期/时间值存储在$wpdb->postmeta 喜欢2017-04-18 14:30:00, 无论字段定义中指定的“显示格式”或“返回格式”。因此,您应该查询为:

$posts = get_posts(array(
    \'post_type\'         => \'events\',
    \'posts_per_page\'    => -1,
    \'meta_key\'          => \'from_datetime\',
    \'meta_value\'        => date( "Y-m-d h:i:s" ), 
    \'meta_compare\'      => \'>\',
    \'orderby\'           => \'meta_value\',
    \'order\'             => \'ASC\'
));
如果您使用的插件将日期/时间字段类型添加到“普通”ACF中,那么您必须弄清楚该插件如何存储值和格式meta_value 照着

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post