プラグインの有効化後に予期しない文字出力が生成される原因とは?

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

こんにちは、WPホームページ研究所の運営サポートチーム(@WP_LABO)です。

ごく稀にプラグインを有効化するとエラーメッセージが表示されるケースがありますよね。下記ではプラグインを有効化した直後に「予期しない文字列が出力されるエラー」についてご紹介させていただきます。

プラグインの有効化後に予期しない文字出力が生成される原因とは?

実際に表示されるメッセージは下記です。

プラグインの有効化中に◎◎◎文字の予期しない出力が生成されました。 “headers already sent” メッセージや RSS フィードの問題、その他の不具合に気づいた場合、このプラグインの停止または削除を試してください。

実際にスクリーンショットが以下ですね。

原因はプラグインがアクティベート(有効化)のタイミングで「echo」している点。

<?php
/*
Plugin Name: Headers already sent TEST
Plugin URI: https://example.com
Description: Headers already sentを出力するテストです。
Version: 1.0
Author: WPホームページ研究所
Author URI: https://example.com
License: GNU
*/

// プラグイン有効直後に「echo」すると表示される
echo "test!";

?>

プラグイン有効化時に「register_activation_hook」が呼び出されているので下記も同じエラーが表示されます。

<?php
/*
Plugin Name: Headers already sent TEST
Plugin URI: https://example.com
Description: Headers already sentを出力するテストです。
Version: 1.0
Author: WPホームページ研究所
Author URI: https://example.com
License: GNU
*/

function headers_already_sent_test_script() {
	echo 'test!';
}
register_activation_hook( __FILE__, 'headers_already_sent_test_script' );

?>

アクションフックで実行をずらせば解決。

<?php 
/*
Plugin Name: Headers already sent TEST
Plugin URI: https://example.com
Description: Headers already sentを出力するテストです。
Version: 1.0
Author: WPホームページ研究所
Author URI: https://example.com
License: GNU
*/

// 実行するタイミングを「init」に変更する
add_action( 'init', function() { echo 'test!'; });

?>

命令文が実行されるタイミングさえ変えれば書き方はどちらでもOKです。

// 省略せずに書く方法
function headers_already_sent_test_script() {
	echo 'test!';
}
add_action( 'init', 'headers_already_sent_test_script');

ぜひご参考くださいませ。

最新式の無料プラグインを事前公開

WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
改良されたプラグインを確認する

ワードプレス専門家に丸投げする

WPホームページ研究所はワードプレスを中心としたブログ作成・ホームページ制作・オウンドメディア構築・プラグイン設定・調整など幅広いカスタマイズに対応しております。 記事の掲載情報だけでなくお好みの機能をいただければ専属スタッフが心を込めて真摯に対応させていただきます。お気軽にお問い合わせください。

お問い合わせの種類をお選びください(もっとも近い項目)

法人の場合は法人名とご担当者のお名前をご入力ください

返信時のご連絡に利用するメールアドレスをご入力ください

運営中のウェブサイトURLがあればご入力ください

お困りの内容があれば詳しい内容をお聞かせください