2013-02-05 96 views
0

我正在嘗試爲WordPress自動發佈一個API的插件。 我已經把一個類別中的生成HTML代碼:在wordpress中輸出緩衝

class Poster{ 
    public function generateHTML($data){ 
     ob_start(); 
     /* 
     some html and php code 
     */ 
     $html = ob_get_contents(); 
     ob_end_flush(); 
     return $html; 
    } 
} 

事件上觸發admin_menu行動:

add_action('admin_menu', function(){ 
    /* 
    get data from API 
    */ 

    $poster = new Poster(); 
    $html = $poster->generateHTML($data); 
    $post = array(
    'post_title' => $title, 
    'post_content' => $html, 
    'post_type' => 'post', 
    'comment_status' => 'open', 
    'ping_status' => 'open', 
    'post_status' => 'publish' 
    ); 



    wp_insert_post($post, $wp_error, true);  
}); 

有什麼錯我的代碼? 它有時會起作用,但大部分時間沒有。

而'它的作品'我的意思是從方法返回的HTML,然後存儲在$ html變量。但大多數情況下,從該方法返回的HTML是唯一正在輸出並且在管理面板中輸出的HTML(管理面板的其餘部分不會僅輸出從該方法生成的內容被輸出)。

那麼,我如何解決這個問題有什麼不對嗎? 有沒有其他方法可以達到同樣的效果?提前致謝!

+0

你是否把html放在標題之前。檢查某些情況下是否有任何字符在某處回顯。看起來像輸出時間問題。 –

+0

你在'標題'之前是什麼意思?如果您在發送標題信息之前提及。那麼我猜它不是。但是,我如何驗證它?我輸出東西的唯一地方是在方法內部,沒有別的東西。 – user225269

回答

1

把一個error_log消息找出路徑,當它顯示只有你的文本在管理然後從那裏抓住它。很難猜測,但您需要使用錯誤日誌進行調試。

+0

你可能會在錯誤的時間調用你的方法 –