wp_get_environment_type()
Отримує поточний тип оточення: local , development , staging , production (за замовчуванням).
Ця функція стандартизує застосування різної логіки коду різного середовища розробки. Так наприклад, можна виконувати один код на локалці, інший при тестуванні і третій у продакшені.
Встановлення типу оточення
Тип оточення може бути заданий двома способами: за допомогою глобальної системної змінної WP_ENVIRONMENT_TYPE або константи з таким самим ім’ям.
putenv( 'WP_ENVIRONMENT_TYPE=development'); // або define( 'WP_ENVIRONMENT_TYPE', 'development' );
Значення константи переписує значення системної змінної. Якщо вказано значення не зі списку вище, функція поверне тип production .
При установці типу оточення developmentвключається дебаг режим – WP_DEBUG = true.
Читайте також опис функції putenv() .
wp_is_application_passwords_available()
(швидкість світла) | 50000 разів – 0.00 сек
(швидкість світла)
Хуків немає.
Повертає
Строку. Поточний тип оточення:
local– Локалка. З версії 5.5.1development– Розробка.staging– Гілка, стадія, тестування.production– Робочий сайт (за замовчуванням).
Використання
wp_get_environment_type();
Приклади
#1 Приклад з Ядра – дефолтна установка константи WP_DEBUG
if ( ! defined( 'WP_DEBUG' ) ) {
if ( 'development' === wp_get_environment_type() ) {
define( 'WP_DEBUG', true );
} else {
define( 'WP_DEBUG', false );
}
}#2 Ще демонстраційний приклад
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;
}#3 Закриємо сайт від пошукових систем, якщо це версія сайту для розробки
/**
* Close from search engines indexing for dev.
*
* @return void
*/
function kama_development_disable_indexing(){
// do noting it's prod OR Admin
if(
in_array( wp_get_environment_type(), [ 'production', 'local' ], true )
||
current_user_can( 'administrator' )
) {
return;
}
// HTTP header
header( 'X-Robots-Tag: noindex');
//robots.txt
add_filter( 'robots_txt', fn() => "User-agent: *nDisallow: /", 999);
// <meta name='robots' content='noindex, follow' />
add_filter( 'wp_robots', function( $robots ){
$robots['noindex'] = true;
$robots['nofollow'] = true;
unset($robots['follow']);
return $robots;
}, 999);
// 403 for search agents
$robots = 'libwww|Wget|LWP|damnBot|BBBike|spider|crawl|google|bing|yandex|msnbot';
if( preg_match( "/$robots/i", $_SERVER['HTTP_USER_AGENT'] ) ) {
http_response_code(403);
die ( 'Public Forbidden');
}
}Тепер просто викликає цю функцію десь у плагіні або у файлі fucntions.php:
kama_development_disable_indexing();
список змін
| З версії 5.5.0 | Введено. |
| З версії 5.5.1 | Added the ‘local’ type. |
| З версії 5.5.1 | Повернувши здатність до іншого списку типів. |