2012-07-31 83 views
-1

所以我有一个名为“Events”的自定义帖子类型。在每个事件中,我都有一个名为“start_time_date”的自定义字段,它返回“08/01/12”之类的日期。我将如何排序这些帖子来返回帖子,以便帖子按照start_time_date按升序排序(start_time_dates接近当前日期首先显示)。如何按自定义日期排序WordPress查询?

这里是我当前的代码:

<? 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; ?> 

回答

1

你尝试类似:

<? query_posts("cat=$currentID&showposts=100&orderby=date&order=asc"); ?> 

我不知道到底是什么date是数据库列,但它是类似的东西。此外,该命令可能需要但改变,但我不认为这很重要。

编辑

我做了一些更多的研究和&orderby=date&order=asc是日期和顺序是正确的。

对不起,您是否在WordPress代码中通过Displaying Posts Using a Custom Select Query阅读?

他们还添加了query_posts('&meta_key=popularity&orderby=meta_value');其中meta_key是您的自定义字段的名称。

这里找到:Class Reference/WP Query

+0

是的。这只是由默认的WordPress发布日期排序。我想按自定义日期字段进行排序 – raeq 2012-07-31 19:31:46

+0

我更新了我的答案,以包含指向文章的链接。 – Biotox 2012-07-31 19:48:09

+0

谢谢。这工作 – raeq 2012-08-01 15:47:54

1

使用存储在该职位的MySQL的格式,即2012-08-02日期一元场。也许可以考虑使用jQuery日期选择器为您呈现此格式。

保存时的这个帖子现在应该在wp_postmeta表中有一行。

$results = new WP_Query(array('meta_key' => 'date', 'orderby'=> 'meta_value'));