显示未来7天内即将举行的活动

时间:2011-11-11 作者:John Bentwin

我看到一个简单的7天活动日历的请求,它总是从今天开始。

我有一个名为opening time的自定义元框,它可以获得YYYY-MM-DD输入。

目前,这是我所拥有的,它不起作用。

它只输出2011年11月17日,今天是2011年11月11日,所以这是错误的。它还必须有一个php错误,因为没有任何博客输出。

提前谢谢你。

<ul id="days_header">
<?php
    $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\'    => \'opening_time\',
  \'orderby\'     => \'meta_value\',
  \'order\'       => \'asc\',
  \'meta_query\'  => array(
     array(
      \'key\'     => \'opening_time\',
      \'value\'   => array($today,$future),
      \'compare\' => \'BETWEEN\',
      \'type\'    => \'DATE\'
    )
   )
  ) 
);
?>
<?php for ($i=0; $i<7; $i++):
$thedate = strtotime ( \'+\'.$i.\' day\' , strtotime ( $today ) ) ;
$thedate = date ( \'o-m-d\' , $thedate ); ?>

<li>
<?php echo $thedate; ?>
<?php if ($event_query->have_posts()) : while ($event_query->have_posts()) :  $event_query->the_post();?>
  <?php if(meta(\'opening_time\') == $thedate) :?>
    <?php the_title(); ?>
    <?php else: ?>
      No Events Today

  <?php endif; ?>
  </li>
<?php endwhile; endif; rewind_posts(); ?> 

1 个回复
SO网友:Steve Grunwell

我过去使用BETWEEN 与元查询进行比较。如果将元查询替换为>=<= 比较:

\'meta_query\'  => array(
   array(
    \'key\'     => \'opening_time\',
    \'value\'   => $today,
    \'compare\' => \'>=\',
    \'type\'    => \'DATE\'
  ),
  array(
    \'key\'     => \'opening_time\',
    \'value\'   => $future,
    \'compare\' => \'<=\',
    \'type\'    => \'DATE\'
  )
)
根据您的应用程序,您可能希望通过从一条或两条语句中删除“或等于”来稍微调整结果(目前这是非常宽容的)。

至于PHP错误,您提供的代码不会以endfor. 你检查过你的PHP错误日志了吗?您也可以尝试打开WP_DEBUG 在wp配置中。php文件。

结束

相关推荐

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