我正在尝试使用以下代码输出日期大于或等于今天日期的事件列表:
$args = array('post_type' => 'event') // setup my custom post type
$todaysdate = blah blah //setup for today's date
// the wp loop
query_posts($args);
if ( (have_posts() && $eventdate >= $todaysdate) ) : while (have_posts()) : the_post();
$eventdate = blah blah // setup for the date of the event;
echo $event;
endwhile; endif;
您可以看到问题是IF依赖于循环内的变量。
首先在循环外设置变量的最佳方法是什么?
答案 0 :(得分:0)
而不是做
if stuff from while iteration that doesn't exist yet
while
然后你应该做
while
if stuff from current while iteration
就像你说的那样:“你可以看到的问题是IF依赖于循环内的变量。”
您只需构建代码,以便在当前执行时存在所需内容。只需将依赖项移动到适当的位置,以便在使用它之前存在。
答案 1 :(得分:0)
如果实际上应该在循环中,比如
$args = array('post_type' => 'event') // setup my custom post type
$todaysdate = "blah blah"; //setup for today's date
// the wp loop
query_posts($args);
if ( (have_posts()) : while (have_posts()) : the_post();
$eventdate = "blah blah"; // setup for the date of the event;
if($eventdate >= $todaysdate))
echo $event;
endif;
endwhile; endif;
修改强>
Thanks, this works fine, however, I want to output a set number of events (5 in total) which I've defined in $args. So $args sets up 5 events, but the second IF then filters out old events so I end up with less than 5.
但是,如果是第一名的话,那就是你的原因。但是,如果您的意思是它应该显示该日期之后的5个事件,则需要修改wp_query
本身。见Examples Here