wp_get_environment_type() in Yoast SEO
Since WordPress 5.5, the new wp_get_environment_type()
function can be used to retrieve the current environment of a site. Among other things, this allows authors of themes and plugins to easily find the environment of a site, and possibly to propose specific features for each type of environment.
Yoast SEO makes use of this feature to enable or disable certain options of the plugin that are either relevant or irrelevant to have for each type of environment.
Using wp_get_environment_type()
to retrieve a site’s environment
The use of wp_get_environment_type()
is rather simple and straightforward. The value returned by the function is defined by the global variable WP_ENVIRONMENT_TYPE
.
The possible values of this variable are local
, development
, staging
and production
.
So a conditional check is performed on the return value of the function, and depending on the result, given instructions are executed.
Here is what it looks like in practice:
<?php
switch ( wp_get_environment_type() ) {
case 'local':
case 'development':
do_nothing();
break;
case 'staging':
do_staging_thing();
break;
case 'production':
default:
do_production_thing();
break;
}
A couple of quick details. If wp_get_environment_type()
returns development
, the value of the WP_DEBUG
constant is set to true, if not previously defined in the wp-config.php file.
Another feature of WordPress, Application Passwords is tied to the value returned by wp_get_environment_type()
. It is available by default when this value is local
.
How does Yoast SEO use wp_get_environment_type()
?
On non-production environments
On sites that are not live - if ( wp_get_environment_type() !== 'production' )
- , several things are not necessary. Thus, in these cases, the plugin does not fetch Ryte data, does not execute the Ryte Site Health check, disables data tracking and disables search engine pinging about the XML sitemap.