API からデータを自動的に投稿する wordpress 用のプラグインを作成しようとしています。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 のみが出力され、管理パネルに出力されます (管理パネルの残りの部分は出力されず、メソッドから生成されたコンテンツのみが出力されます)。
それで、私がこれにアプローチする方法に何か問題がありますか? 同じ結果を得るためにできる代替手段はありますか? 前もって感謝します!