WordPress 5.5 引入了一个新wp_get_environment_type()功能,可以检索网站的当前环境类型。这使WordPress插件和主题作者可以更轻松地以标准化方式区分他们在生产和开发站点之间处理特定功能的方式。默认情况下,此函数将返回production。默认情况下支持的其他值为development和staging。那么如何正确定义和识别WordPress 5.5+ 站点环境?
下面是如何使用此新功能确定站点的环境类型的示例。
switch ( wp_get_environment_type() ) {
case ‘development’:
do_nothing();
break;
case ‘staging’:
do_staging_thing();
break;
default:
do_production_thing();
break;
}
当然,应注意使用这种功能来测试所有可能的路线。请记住,网站所有者和主机总是可以随时根据需要添加更多类型。
设置环境类型
有三种方法可以设置站点的环境类型。按照以下顺序处理它们,每个顺序选项将覆盖所有先前的值:WP_ENVIRONMENT_TYPE PHP环境变量,WP_ENVIRONMENT_TYPE常量和wp_get_environment_type 过滤钩子。
对于所有三个环境,如果环境值不在允许的环境列表中,production则将返回默认值。
最简单的方法可能是通过定义常量:
define( ‘WP_ENVIRONMENT_TYPE’, ‘staging’ );
注意:如果development由wp_get_environment_type()返回,当站点wp-config.php文件中未定义WP_DEBUG,那么WP_DEBUG将会被设置为true。
指定批准的环境类型
与设置环境类型相似,有三种方法可以指定批准的环境类型。它们的处理方式与上述类型相同,每个顺序选项都覆盖了先前的值:WP_ENVIRONMENT_TYPESPHP环境变量,WP_ENVIRONMENT_TYPES常量和wp_environment_types过滤器。
假定站点希望支持test环境类型。下面是定义常量的示例:
define(
‘WP_ENVIRONMENT_TYPES’,
array(
‘production’,
‘staging’,
‘development’,
‘test’,
)
);
注:这两个wp_get_environment_type和wp_environment_types过滤器通过插件来使用,运行很早,并且被设计用于非网络运行时,如直接修改 $wp_filter 全局。
对所有主机和开发环境的要求
请求所有支持设置暂存环境的主机,在这些暂存环境上将此功能设置为staging。同样,我们要求具有开发环境的所有开发人员将此值设置为development适当的值。
WordPress插件和主题开发人员还应该添加对此功能的支持,并根据指定的环境适当地调整功能。