2012-02-22 31 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