WordPress5.5で追加されたwp_get_environment_type()関数

wp_get_environment_type
先生

WordPress 5.5 で環境タイプを取得できる wp_get_environment_type() 関数が追加されたので紹介しよう。

よろしくお願いします!

wp_get_environment_type() 関数について

wp_get_environment_type() は、そのサイトの環境タイプを取得するために追加された関数です。

以下の3つの値がサポートされていて、

  • production
  • staging
  • development

wp_get_environment_type() を呼び出すと、デフォルトでは production が返されるようになっています。

環境タイプの設定方法

Web サイトを開発する際に、本番環境は production 、テスト環境は staging、開発環境は development のように環境タイプを独自に設定したい場合、いくつかの方法で指定することができます。

まずは PHP の定数で指定する方法です。

wp-config.php ファイルにて、下記のように WP_ENVIRONMENT_TYPE 定数に環境タイプの値を指定することができます。

// 環境タイプを staging に設定
define( 'WP_ENVIRONMENT_TYPE', 'staging' );

次に、環境変数で指定する方法です。

そのサイトが Apache で動作していて .htaccess を使用できる場合、.htaccessにて下記のように WP_ENVIRONMENT_TYPE 環境変数に環境タイプの値を指定することができます。

# 環境タイプを development に設定
SetEnv WP_ENVIRONMENT_TYPE 'development'

上記の設定変更を行った後に、wp_get_environment_type() を呼び出すと、指定した環境タイプが返されるようになります。

なお、環境タイプを development に変更すると、自動でデバッグモード(WP_DEBUG 定数が true に設定される)へ切り替わるようになっています。

環境タイプの種類をカスタマイズする方法

標準でサポートされているproductionstagingdevelopment以外の環境タイプも管理できるようにしたいという場合、独自に設定することも可能です。

wp-config.php ファイルにて、下記のように WP_ENVIRONMENT_TYPES 定数に環境タイプの値を配列で指定します。

// production 、staging、development、test の4つの環境タイプを定義する
define(
    'WP_ENVIRONMENT_TYPES',
    array(
        'production',
        'staging',
        'development',
        'test',
    )
);
先生

もし大きなプロジェクトで環境が4つ以上あるような場合、こうして環境タイプをカスタマイズすることで適切に管理することもできそうじゃな。

実際の使用例

Make WordPress Core には、環境タイプの利用例として下記のコードが紹介されています。


switch ( wp_get_environment_type() ) {
    case 'development':
        do_nothing();
        break;
     
    case 'staging':
        do_staging_thing();
        break;
     
    default:
        do_production_thing();
        break;
}

今までの WordPress ではwp_get_environment_type() のような仕組みを持っていなかったので、環境によって処理を切り分けたい場合、独自にその機能を作り込んでいるケースが多かったでしょう。

この関数が提供されたことで、今後はこの方法で環境情報を管理することがスタンダードになっていくかもしれませんね。

まとめ

先生

「まずい!開発用の◯◯でXXXしちゃった!!」といった間違いはよくある話じゃ。環境設定をうまく利用することで、そういった間違いも不具合やミスも無くせるようにできるといいのお。

生徒

う、うん、そうだね気を付けないとね・・・。

参考URL