如何列出接下来的7天以及这些天中包含的任何事件(CPT

时间:2011-06-06 作者:TJ Sherrill

不管是哪一天,我都要列出接下来的七天。如果是星期一,则从今天开始列出7天;如果是星期五,则从今天开始列出7天。

接下来,我需要展示当天的所有活动。如果给定的一天没有任何事件,它只会列出一个默认图形。

我将为每天制作一个特色活动,并最终将其设置为只显示该活动,但现在我只想列出接下来的7天以及其中包含的任何活动。

我有两件不太合身的。首先:

<?php $cur_day = \'current_day\'; $last = \'last\';
$date = date(\'o-m-d\'); $ts = strtotime($date); $dow = date(\'w\', $ts); 
for ($i=0; $i<7; $i++, $ts+=86400){ ?>
这将列出从今天开始的未来7天中的每一天。

 $event_query = new WP_Query(
        array( 
          \'post_type\'   => \'event\',        // only query events
          \'meta_key\'    => \'event-date\',  // load up the event_date meta
          \'orderby\'     => \'meta_value\',
          \'order\'       => \'asc\',         // ascending, so earlier events first
          \'meta_query\'  => array(
             array(         // restrict posts based on meta values
              \'key\'     => \'event-date\',  // which meta to query
              \'value\'   => $event_date,  // value for comparison
              \'compare\' => \'=\',          // method of comparison
              \'type\'    => \'NUMERIC\'         // datatype, we don\'t want to compare the string values
            ) // meta_query is an array of query ites
           ) // end meta_query array
          ) // end array
        ); // close WP_Query constructor call
这列出了接下来的七天,但没有很好地处理这些事件。。。

我希望复制以下内容:http://www3.dmagazine.com/events 带cpt

谢谢,请帮忙

1 个回复
最合适的回答,由SO网友:Milo 整理而成

您肯定应该在一个查询中完成这项工作。然后建立一个简单的循环,每次迭代都得到当天的日期。然后遍历所有帖子,将日期与日期元字段进行比较,如果匹配,则输出。我觉得这样应该行得通。。。

$today = date("o-m-d");
$future = strtotime ( \'+6 days\' , strtotime ( $today ) ) ;
$future = date ( \'o-m-d\' , $future );
$event_query = new WP_Query(
    array( 
      \'post_type\'   => \'event\',
      \'meta_key\'    => \'event-date\',
      \'orderby\'     => \'meta_value\',
      \'order\'       => \'asc\',
      \'meta_query\'  => array(
         array(
          \'key\'     => \'event-date\',
          \'value\'   => array($today,$future),
          \'compare\' => \'BETWEEN\',
          \'type\'    => \'DATE\'
        )
       )
      ) 
    );

for ($i=0; $i<7; $i++){
    $thedate = strtotime ( \'+\'.$i.\' day\' , strtotime ( $today ) ) ;
    $thedate = date ( \'o-m-d\' , $thedate );
    echo $thedate;
    // loop thru all posts and check $thedate against your date meta
    // and output if it matches
    // then rewind_posts(); to set it up for the next day
}

结束

相关推荐

Only Showing Upcoming Events

在此页面的侧栏中:http://lifebridgecypress.org/our-people, 我有一个即将使用此代码的事件列表。。。<ul id=\"upcoming-events\"> <?php $latestPosts = new WP_Query(); $latestPosts->query(\'cat=3&showposts=10\'); ?> <?php while ($latestPos