使用META_QUERY订购MySQL样式的日期时间戳

时间:2013-09-26 作者:fakeguybrushthreepwood

我有一个自定义的post类型字段,我将数据存储在名为football\\u game\\u datetime的字段中。

此字段的格式和值示例如下:“2013-10-31 14:00:00”、“2013-09-16 20:00:00”、“2013-09-30 22:00:00”。

我使用的代码如下所示,但它没有达到我认为应该达到的效果:

$mypost =
array(
    \'post_type\' => \'football_games\',
    \'meta_query\' => array(
           array(
                \'order\'=>\'DESC\',
                \'orderby\' => \'meta_value_num\',
                \'meta_key\' => \'football_game_datetime\'
           )
    )
);
$loop = new WP_Query( $mypost );

1 个回复
SO网友:s_ha_dum

\'orderby\' => \'meta_value_num\' 将尝试通过添加0将值强制为数字。换句话说,"2013-09-30 22:00:00"+0 当我测试PHP和MySQL都将字符串转换为2013, 这不是你想要的。

如果您不使用特定的日期格式,那么只有该日期格式才能正确排序。也就是说,它将按照人类日历进行排序。不使用meta_value_num. 你没有号码。你有一根绳子。仅使用meta_value.

其次orderorderby 在内部无效meta_query 这些需要在meta_query, 事实上,我认为你不需要meta_query 完全

$mypost =
array(
    \'post_type\' => \'football_games\',
    \'order\'=>\'DESC\',
    \'orderby\' => \'meta_value\',
    \'meta_key\' => \'football_game_datetime\'
);
$loop = new WP_Query( $mypost );
你所拥有的基本上是,this example from the Codex:

$query = new WP_Query( array ( \'post_type\' => \'product\', \'orderby\' => \'meta_value\', \'meta_key\' => \'price\' ) );

结束

相关推荐

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

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