web-dev-qa-db-ja.com

予期せぬ出力によるプラグインアクティベーションエラー

プラグインをアクティブにすると、次のようなエラーが表示されます。

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

そして、これが私のプラグインコードです:

<?php
/*
Plugin Name: Hello World
*/

    echo "<h1>Hello, world!</h1>";

?>

コードに構文エラーがあると、通常このエラーが発生します。確認しましたが、ファイルの先頭または末尾に\n\t\r、または特殊文字はありません。

私は理解していない、これはこれまでに作成することができる最もミニマリストのプラグインです、何が悪いのですか?


編集1:

echo "<h1>Hello, world!</h1>";行を削除してもエラーにはなりません。

2
Vijay Chavda

ヘッダが送信される前にプラグインがロードされます。その理由はあなたがプラグインごとにあなた自身のヘッダを送ることができるはずだからです。

そしてそれがメインプラグインファイルが直接出力を作成してはいけない理由です。あなたのechoコードを関数にラップして、ヘッダが送信された後に後で起こるアクションのためのコールバックとしてその関数を登録してください。

4
fuxia