所以我有一个名为“Events”的自定义帖子类型。在每个事件中,我有一个名为“start_time_date”的自定义字段,它返回类似“08/01/12”的日期。我如何对这些帖子进行排序以返回帖子,以便帖子按start_time_date按升序排序(首先显示更接近当前日期的start_time_dates)。
这是我目前的代码:
<? query_posts("cat=$currentID&showposts=100"); ?>
<? if ( have_posts() ) : ?>
<? while ( have_posts() ) : the_post(); if (time() < strtotime(get('end_time_date'))) :?>
<? $originalDate = get('start_time_date'); $newDate = date("M j, Y", strtotime($originalDate)); ?>
<div class="post">Some Post Data</div>
<? endif; endwhile; ?>
<? endif; ?>
答案 0 :(得分:1)
您尝试过类似的事情吗?
<? query_posts("cat=$currentID&showposts=100&orderby=date&order=asc"); ?>
我不确定数据库列中究竟是date
到底是什么,但它是这样的。此外,订单可能需要改变,但我不认为这很重要。
修改强>
我做了更多研究,&orderby=date&order=asc
对于日期和订购是正确的。
很抱歉,您是否阅读了WordPress codex中的Displaying Posts Using a Custom Select Query?
他们还添加了query_posts('&meta_key=popularity&orderby=meta_value');
,其中meta_key
是自定义字段的名称。
在此处找到:Class Reference/WP Query
答案 1 :(得分:1)
使用以mysql格式存储日期的元字段,即该帖子的2012-08-02
。也许可以考虑使用jquery日期选择器为你呈现这种格式。
保存后的这篇文章现在应该在wp_postmeta表中有一行。
$results = new WP_Query( array( 'meta_key' => 'date', 'orderby'=> 'meta_value' ));