2013-02-05 3 views
0

나는 API에서 자동으로 데이터를 게시하는 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

잘못된 시간에 방법을 호출했을 수 있습니다. –

관련 문제