プラグインのアクティベーション中にメッセージを出力する方法


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を使用しているのでそれが完全に機能することはわかっていますが、trigger_errorは情報を表示する必要があることを示しています。それを試して、自分の目で確かめてください:)


error_log関数の詳細なドキュメントがどこにあるか知っていますか?それを機能させる方法を理解するのに苦労しています。
Nathan Arthur 14年

後に来る可能性がある人のために:php.net/manual/en/function.error-log.php
Nathan Arthur

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」を表示します。


これでうまくいきましたが、ファイルの最後に配置する必要がありました。それ以外の場合は、出力をキャプチャしませんでした。
ベンオゴレク

0

1)内部ページまたはプラグインページの余分なスペースを削除してください。

2)ページまたはプラグインページのインラインスタイルを削除します。

それはいつも私のために働きました。私は何度も同じ方法を使用しました。プラグインページまたはWordpressページで問題が発生したとき。

よろしく、

ヒテシュ・ナグパル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.