WordPress 5.5 以降では、WP_ENVIRONMENT_TYPE
という定数を利用して開発・ステージング・本番などの環境を明示的に切り替えられるようになりました。
この記事では、WP_ENVIRONMENT_TYPE
の基本から実用的な使い方まで解説します。
1. WP_ENVIRONMENT_TYPE とは?
WP_ENVIRONMENT_TYPE
は、WordPressコアが標準で認識する環境タイプを定義する定数です。
開発・テスト・本番など、複数の環境を安全に運用するための仕組みとして導入されました。
公式ドキュメントで推奨される標準的な値は以下の通りです。
環境タイプ | 用途例 |
---|---|
production | 本番環境 |
staging | ステージング(検証)環境 |
development | ローカル開発環境 |
local | 個人用ローカル環境(カスタム値) |
2. WP_ENVIRONMENT_TYPE の設定方法
2-1. wp-config.php に定義する
最も基本的な設定方法です。
<?php
// 環境タイプを定義
define( 'WP_ENVIRONMENT_TYPE', 'development' );
ローカル・ステージング・本番ごとに値を変更することで、テーマやプラグイン側の処理を環境別に切り替えられます。
2-2. サーバー環境変数で設定する
wp-config.php
を編集せずに、サーバーの環境変数で制御することも可能です。
例:.htaccess
SetEnv WP_ENVIRONMENT_TYPE staging
例:Nginx
fastcgi_param WP_ENVIRONMENT_TYPE production;
この方法は、デプロイ時にコードを変更せず切り替えられる点がメリットです。
3. 環境判定の書き方
テーマやプラグインで現在の環境を判定するには、wp_get_environment_type()
関数を使います。
<?php
if ( wp_get_environment_type() === 'production' ) {
// 本番環境のみで実行する処理
error_log( 'This is production!' );
}
if ( wp_get_environment_type() === 'development' ) {
// 開発環境専用のデバッグ設定
define( 'WP_DEBUG', true );
define( 'SCRIPT_DEBUG', true );
}
4. 実践的な活用例
4-1. デバッグ機能の切り替え
開発環境ではエラーログを出力し、本番では非表示にできます。
<?php
switch ( wp_get_environment_type() ) {
case 'production':
define( 'WP_DEBUG', false );
define( 'WP_DEBUG_LOG', false );
break;
case 'staging':
case 'development':
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
break;
}
4-2. トラッキングコードの切り替え
Google Analytics や Tag Manager などを本番だけで有効化する例です。
<?php
if ( wp_get_environment_type() === 'production' ) :
?>
<!-- Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXX');
</script>
<?php
endif;
?>
4-3. APIエンドポイントの切り替え
開発環境と本番環境で異なるAPIサーバーを指定するケースです。
<?php
$api_endpoint = match ( wp_get_environment_type() ) {
'production' => 'https://api.example.com',
'staging' => 'https://staging-api.example.com',
'development' => 'http://localhost:3000',
};
5. 注意点
WP_ENVIRONMENT_TYPE
の値は 一貫性を保つ
→production
/staging
/development
のように統一しましょう。- プラグインやテーマが対応していない場合は、
wp_get_environment_type()
を使って条件分岐を自前で実装。 - WordPress 5.5 未満では利用できないため、古いバージョンでは
WP_ENV
のようなカスタム定数を使う必要があります。
6. まとめ
項目 | ポイント |
---|---|
定義方法 | wp-config.php またはサーバー環境変数 |
判定方法 | wp_get_environment_type() |
用途 | デバッグ切り替え、API切り替え、トラッキング制御など |
メリット | 環境ごとの挙動をコード内で安全に制御できる |
WP_ENVIRONMENT_TYPE
を使うことで、環境ごとの処理分岐を安全に、かつメンテナンス性高く管理できます。
WordPressプロジェクトを本番・開発・ステージングで分けて運用している方は、ぜひ導入を検討してみてください。
コメント