在我的帖子自定义字段中,我有一个名为ending的meta\\u键。其值为2011年11月30日(dd-mm-yyyy)形式的日期。
我在下面试过,但没有成功。
query_posts("paged=$paged&meta_key=ending&order_by=meta_value&order=DESC")
我也试着像下面这样做,同样没有使用我的日期格式的正确输出
$querystr = "
SELECT wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = \'ending\'
ORDER BY wpostmeta.meta_value ASC
";
$pageposts = $wpdb->get_results($querystr, OBJECT);
?>
<?php if ($pageposts): ?>
<?php global $post; ?>
<?php foreach ($pageposts as $post): ?>
<?php setup_postdata($post); ?>
<?php the_title(); ?>
<br>
<?php endforeach; ?>
<?php else : ?>
<?php endif; ?>
我关注两点。
我的查询帖子是否正确我在自定义字段中键入的日期格式是否适合此操作谢谢你
最合适的回答,由SO网友:Maciej Kuś 整理而成
ad1。meta\\u值是字符串,所以它们的顺序像字符串一样,而不是日期。在SQL中,您应该在订购之前使用一些转换作为日期
ad2。更好的日期格式应该是yyyy-mm-dd,因为将此元字段按字符串排序会得到与日期类型列相同的结果。。
比较yyyy mm dd中的日期顺序
2010-03-06
2012-06-05
和dd mm yyyy中的相同日期
05-06-2012
06-03-2010
两者都已排序(ASC),但第一个示例的顺序正确。