不管是哪一天,我都要列出接下来的七天。如果是星期一,则从今天开始列出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
谢谢,请帮忙
最合适的回答,由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
}