2012-02-22 33 views
0

是否有可能在wordpress插件中循环?循环将无法在我的插件中工作

我创建了这个插件,它利用一个WordPress循环抢约帖子一些信息在我的自定义后类型的事件:仅被返回

function getEventsFeed() { 
    $args = array('post_type' => 'events'); 
    $loop = new WP_Query($args); 
    $htmlOutput = '<h2>Events</h2>'; 
    while ($loop->have_posts()) : $loop->the_post(); 
     $date = get_post_meta($post->ID, 'events_0'); 
     $location = get_post_meta($post->ID, 'events_9'); 
     $htmlOutput .= '<tr><td>' . the_title() . '</td><td>' . $date[0] . '</td><td><a href="' . get_bloginfo('url') . '/event/?id='. $post->ID . '">' . $post->post_title .'</a></td><td>' .   $location[0] . '</td></tr>'; 
     endwhile; 
     $htmlOutput .= '</div>'; 
     echo $htmlOutput; 
    } 

问题的the_title信息。 $ post在循环中不工作,所以$ post-> ID和$ post-> post_title没有被返回。我在另一个页面模板中使用这个确切的代码,它会正确返回所有的数据。我不确定为什么当我在插件中使用它时不会返回。

任何想法?

回答

3

尝试增加

global $post; 

你的函数的开始。 $ loop-> the_post()将设置全局$ post变量,但它在函数范围内不可用。

+0

是的!这确实解决了它。非常感谢。不知道为什么! – 2012-02-22 10:59:08

+0

查看关于全局和局部变量作用域的一些上下文:http://www.php.net/manual/en/language.variables.scope.php#language.variables.scope.global – 2012-02-22 11:01:58