web-dev-qa-db-ja.com

このプラグインは80文字の予期しない出力を生成しました。

プラグインを有効にするたびにこのメッセージが表示されます。

プラグインはアクティブ化中に80文字の予期しない出力を生成しました。 「ヘッダがすでに送信されています」というメッセージ、シンジケーションフィードに関する問題、その他の問題に気付いた場合は、このプラグインを無効にするか削除してみてください

メッセージを抑制できる唯一の方法は、私の活動化機能コードを条件付きでラップすることです(**下記参照)。

アラートを防ぐためにこれをどのように書き換える必要がありますか?

function myPlugin($post)
{
    echo "Whatever is here throws an unexpected output alert when the plugin isa activated";
//I can place code here without issue, but anything that is output via echo throws the alert.
}
register_activation_hook(__FILE__, 'myPlugin');

機能コードを条件付きでラップすると、アラートが抑制されます。

function myPlugin($post)
{
    global $pagenow;
    if ( is_admin() && $pagenow !== 'plugins.php' ) {
        echo "No more alerts when its wrapped this way";
        }
}
 ?>
1
Scott B

この種のメッセージが表示されるときは通常はプラグインに構文エラーがあることを意味しますで、アクティブ化時の読み込みの処理方法、つまりエラーメッセージの送信後にHTTPヘッダーが送信されるため表示。あなたのプラグインのエラーメッセージは<iframe>にロードされます。明らかなエラーメッセージがあるかどうかを確認するために<iframe>"ソースの表示" を実行しましたか?

また、あなたはこのようなことを手助けすることができるHTTPデバッガを手に入れることを考えるべきです:

  • Windowsには 優秀無料フィドラー があります。

  • Mac OS Xの場合、 HTTPScoop(偉大ではないが、S $ 15。で安価) があります。

  • Charles / Windows/Mac/Linux用 S $ 5 - 私は故障していつか買うかもしれません。MacでFiddlerを手に入れたいのですがFiddlerはマイクロソフトから来ているので、私は息を止めていません。

更新

以下のコメントに基づいて、Safariで "Inspect Element" を使用した私の画面です(ただし、ChromeとFireFox、またはIEとWeb Developer Toolbarで同じことができます)。 :

Screenshot of Element Inspector on Safari with the WordPress plugin error IFRAME
(出典: mikeschinkel.com

あなたはその<iframe>d URLをつかみ、あなたのブラウザに直接ロードしてデバッグのプロセスをより簡単にすることができます。あなたのプラグインの中に何かがエラーメッセージを投げているq header()afterを送っています、それはそのエラーメッセージが意味するものです。

Loading WordPress Plugin Activation URL directly from the browser
(出典: mikeschinkel.com

ところで、私はそれがエラーをスローさせるためにそれを得るために私のプラグインに浮遊文字、したがって構文エラーを追加しました。

1
MikeSchinkel

デバッグを使用します。

(プラグインフォルダにログファイルerror_activation.txtを作成します)

add_action('activated_plugin','my_save_error');
function my_save_error()
{
    file_put_contents(dirname(__file__).'/error_activation.txt', ob_get_contents());
}
4
T.Todua

返事が遅れたのですみません、でも私はつまずいただけで、答えはとても簡単です。

しないecho すべて 無効化/無効化/アンインストールフックで使用される関数内。これはalwaysになり、上記のエラーメッセージが表示されます。

1
kaiser

私はちょうどこの問題を調査していて、私が発見したのは、問題がphpのエラー(廃止予定の関数の呼び出しなど)、FTPの文字化け、または 'php'タグの外側のコードの存在によって引き起こされる可能性があることです。 。

私はマイクが上で正しいとは思わない。予期しない出力の問題は致命的なエラーとは異なる方法で処理されます。まず、wordpressは問題を抑制し、「予期しない出力」メッセージを表示します。さらに重要なことは実際にプラグインをアクティブにしてプラグインページにリダイレクトします。 。私はフレームの中に有用なものは何もないと思います、そして私はWordpressがあなたに根本的な問題を解決するための手がかりを提供するものではなかった出力を期待させませんでした。

Plugins.phpファイルをハッキングするか 'activate_plugin'アクションのためのイベントハンドラを設定することを必要とする予期しない出力テキストを取得するための多くの解決策があります。

FWIW、あなたは 私の解決策を見つけることができます ミラー ここで(進行中の作業中)他の人の解決策へのリンクを使って私が恥知らずに借りていた!

1
peter cross

私は同じ問題を抱えていた、私はコードを削除しようとしたが、それでも同じ問題をすべてやった

私にとって本当の解決策は次のとおりです。

  1. プラグインのヘッダーが含まれているファイルの末尾に私は終了phpを削除しましたか?>そして問題は解決されるでしょう
  2. プラグインのヘッダが含まれているプラ​​グインファイルの最後にphpを閉じた後に余分な改行を削除しますか?>

私のプラグインファイルは69行目で終わり、最後のphpコードの後に​​7つのスペースがあったのでエディタではファイルは66まででした。 69まではエラーがなくなった、

1
Aamer Shahzad

私もこの問題を抱えていました。それはプラグインphpファイルが悪いエンコーディングを持っていたことが起こった。内容全体を新しいメモ帳ファイルにコピーし、それをansiエンコーディングで保存しました。エラーメッセージが表示されません。もちろん今は言語の問題がありますが、それは他のケースです。よろしく

0
lukh