2013-02-05 70 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

你可能会在错误的时间调用你的方法 –