WordPressで WP_ENVIRONMENT_TYPE を使った環境切り替え

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プロジェクトを本番・開発・ステージングで分けて運用している方は、ぜひ導入を検討してみてください。

コメント

タイトルとURLをコピーしました