플러그인 활성화 중 메시지를 출력하는 방법


10

플러그인을 개발 중이지만 활성화 문구 중에 지속적으로 버그가 발생합니다. 그러나 에코 메시지가 발생하면 '예기치 않은 출력'오류가 발생하므로 오류 메시지를 표시하는 쉬운 방법이 없습니다. admin_message 훅을 시도했지만 작동하지 않습니다. 활성화 단계가 실패한 경우 사용자에게 알리려면 어떻게해야합니까?

답변:


9

테스트 목적으로 로그 시스템 (php_error.log)을 사용할 수 있습니다.

error_log('Plugin activated', 0);

// Check for DB table existance
if(!$this->hasDBTable()){
    error_log('Database not present', 0);
    if($this->createCELabelsDBTables()){
        error_log('Database was created.', 0);
    } else {
        error_log('Error creating the CE Labels Plugin db tables!', 0);
    }

} else {
    error_log('Database OK', 0);
}

"Headers already sent"오류없이 사용자에게 오류를 출력하려면 php 함수 trigger_error를 사용할 수 있습니다.

trigger_error('PLUGIN OK',E_USER_ERROR);

Wordpress에서 항상 E_USER_ERROR 여야합니다. 그렇지 않으면 메시지가 표시되지 않습니다.

error_log를 사용하고 있기 때문에 error_log가 완벽하게 작동한다는 것을 알고 있지만 trigger_error는 정보를 표시해야합니다. 그것을 시도하고 자신을 참조하십시오 :)


error_log 함수에 대한 추가 문서를 어디서 찾을 수 있는지 알고 있습니까? 작동 방식을 알아내는 데 어려움을 겪고 있습니다.
Nathan Arthur

: 후 올 수 있습니다 사람들을 위해 php.net/manual/en/function.error-log.php
나단 아서

4

해결책:

register_activation_hook( __FILE__, 'my_activation_func' ); function my_activation_func() {
    file_put_contents(__DIR__.'/my_loggg.txt', ob_get_contents());
}

이 코드를 플러그인에 삽입하고 오류가 발생하면 플러그인 폴더 안의 "my_loggg.txt"를 확인하십시오.


이것은 나를 위해 일했지만 파일의 맨 아래에 배치해야했습니다! 그렇지 않으면 출력을 캡처하지 못했습니다.
Ben Ogorek

0

1) 내부 페이지 또는 플러그인 페이지에서 여분의 간격을 제거하십시오.

2) 페이지 또는 플러그인 페이지에서 인라인 스타일을 제거하십시오.

그것은 매번 나를 위해 일했습니다. 나는 여러 번 같은 방법을 사용했다. 플러그인 페이지 또는 Wordpress 페이지에서 문제가 발생한 경우

문안 인사,

히 테스 나팔

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.