如何通过自定义字段日期订购wordpress帖子?

时间:2013-06-03 02:14:49

标签: php javascript html css wordpress

我正在创建一个事件侧边栏部分,它只显示接下来的3个事件。我有自定义帖子类型和自定义字段都工作,但我似乎可以弄清楚如何按事件的开始日期订购帖子,这是一个自定义字段值。是否有一个PHP函数可以比较日期并将它们组织成一个特定的顺序。我认为它还必须使用新安排的日期保留post-id,这样当我读完这些值时,我可以显示该日期的相应帖子。

有没有人有指导我的方向?

我认为这就是我需要做的事情:

  1. 阅读帖子并抓住日期
  2. 使用与这些日期关联的post-id对日期进行排序
  3. 仔细阅读已排序的日期,并通过post-id重新显示前3个帖子
  4. 我迷失了如何编码但是......这就是我到目前为止所做的。此代码只是按照wordpress中的发布日期显示它们。

    <?php query_posts('post_type=events');
                if (have_posts()) : while (have_posts()) : the_post(); ?>
                    <?php $dateStart = get_post_meta($post->ID, 'date-start', true);?>
                    <div class="date"><?php echo $dateStart; ?></div>
    
    <?php endwhile; endif; wp_reset_query();  ?>
    

1 个答案:

答案 0 :(得分:3)

我相信我能够回答我自己的问题。 Wordpress具有内置功能,可以比较帖子之间的自定义字段值。要比较日期,这是我的自定义字段值,它们必须采用'yyyymmdd'格式才能轻松比较它们。

我真的很惊讶我不需要制作多个循环并存储post-id或任何东西。无论如何,我希望这有助于其他人。 :

 <?php 
        $args = array(
           'post_type' => 'events',
           'posts_per_page' => 3, //limited myself to 3 posts
           'meta_key' => 'date-start', //name of custom field
           'orderby' => 'meta_value_num', 
           'order' => 'ASC'
        );
        query_posts($args);
        if (have_posts()) : while (have_posts()) : the_post(); ?>
            //Insert code here...
            //Test to see if it is sorting the posts (below)
            <?php $dateStart = get_post_meta($post->ID, 'date-start', true); echo $dateStart;?>

<?php endwhile; endif; wp_reset_query();  ?>