WP-CLIを使ってるならこう書いたプラグインをとりあえずインストールしとけ

SPONSORED LINK

WP-CLI を使ってコマンドを叩いたときに以下のような警告がでたことありません?

PHP Notice:  Undefined index: SERVER_NAME in ...

これはそのサイトで有効化されているプラグインの一つが SERVER_NAME という環境変数にアクセスしているけど、WP-CLI コマンドを実行したときにはこの環境変数に値がセットされないので出る警告です。

実際にブラウザでアクセスしたときにはこの警告はでないのでサイトを運用するには実害はないのですが、もしコマンドを叩くたびに出るようですとうっとおしいですよね。

そんなわけで、そういうサイトでは以下のように記述したプラグインを有効化しておくとこの警告が出なくなります。

// Fixes the warning for the WP-CLI
if ( defined( 'WP_CLI' ) && WP_CLI ) {
	$host = parse_url( home_url(), PHP_URL_HOST );
	$port = parse_url( home_url(), PHP_URL_PORT );
	if ( empty( $_SERVER['HTTP_HOST'] ) ) {
		if ( ! $port || 80 === $port ) {
			$_SERVER['HTTP_HOST'] = $host;
		} else {
			$_SERVER['HTTP_HOST'] = $host . ':' . $port;
		}
	}
	if ( empty( $_SERVER['SERVER_NAME'] ) ) {
		$_SERVER['SERVER_NAME'] = $host;
	}
}

このコードはなにをしているかというとWP-CLIコマンド経由でWordPressにアクセスしたときには home_url() からとった値を $_SERVER['HTTP_HOST'] とか $_SERVER['SERVEER_NAME'] とかの環境変数にセットしています。

WP-CLI でデフォルトでやったらどうかなというのを以前に検討したことはあるのですが、影響範囲がよめないので各自対処してくださいということになっています。

SPONSORED LINK

この記事を書いた人

宮内隆行

WP-CLIチームのコミッターの一人。VCCW開発者。WordPressコアコントリビューター。辺境の民。コーギーの写真には問答無用でいいねをします。WordPressスペシャリスト@タロスカイ株式会社。

この記事が気に入ったら
いいね!しよう

最新の情報をお届けします

Club Capital P

Club Capital PはCapital Pのファンクラブです。有料会員制となっており、Gumroad経由でサブスクリプションをご購入いただき、ライセンスキーを登録いただくことで、会員特典を受け取ることができます。