wordpress中的输出缓冲

时间:2013-02-05 05:54:52

标签: wordpress wordpress-plugin

我正在尝试为wordpress创建一个自动发布API数据的插件。 我把生成HTML的代码放在一个类中:

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是唯一一个输出的,它在管理面板中输出(管理面板的其余部分不输出,只输出从方法生成的内容)。

所以我如何解决这个问题呢? 我可以做一个替代方案来实现相同的结果吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

输入error_log消息以找出路径,当它只在admin中显示您的文本时,然后从那里捕获它。难以猜测,但您需要使用错误日志进行调试。