Функция wp_get_environment_type()
в WordPress предоставляет разработчикам возможность легко различать типы окружений, в которых работает их сайт. Это позволяет применять разные подходы к функциональности, в зависимости от того, работает ли сайт в локальной, разработческой, промежуточной или производственной среде.
wp_get_environment_type(): string
Функция wp_get_environment_type()
возвращает текущий тип окружения как строку. Значения, которые могут быть возвращены, включают:
- local: используется для локальной разработки.
- development: для сред разработки.
- staging: для промежуточных (стадийных) версий.
- production: для рабочих версий (значение по умолчанию).
Если тип окружения не установлен, по умолчанию возвращается production.
Возврат значения
Функция возвращает строку, обозначающую текущий тип окружения. Это значение можно использовать для различных условий в коде вашего сайта.
Установка типа окружения
Тип окружения может быть установлен несколькими способами:
- С помощью глобальной переменной:
putenv('WP_ENVIRONMENT_TYPE=development');
- С помощью константы:
define('WP_ENVIRONMENT_TYPE', 'development');
Константа имеет приоритет над глобальной переменной. Если указано значение, не входящее в перечисленные выше, функция вернёт тип production.
Пример 1: Установка режима отладки
В WordPress часто требуется включить режим отладки для разработки, но отключить его на производственной версии. Вы можете использовать следующую конструкцию:
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':
// Здесь выполняется код для локальной разработки.
break;
case 'staging':
// Здесь выполняется код для промежуточной версии.
break;
case 'production':
default:
// Здесь выполняется код для производственной версии.
break;
}
Пример 3: Блокировка индексации сайта в не производственных средах
Если ваш сайт находится в разработке или на стадии тестирования, вы можете заблокировать его индексацию поисковыми системами:
/**
* Закрытие от индексации для девелоперских и тестовых окружений.
*/
final class WP_Disable_Indexing {
public static function init(): void {
add_action('init', [__CLASS__, 'disable_indexing']);
}
public static function disable_indexing(): void {
if (!self::should_block_indexing()) {
return;
}
add_filter('robots_txt', [__CLASS__, 'robots_txt']);
}
private static function should_block_indexing(): bool {
return in_array(wp_get_environment_type(), ['development', 'staging'], true);
}
public static function robots_txt(): string {
return "User-agent: *\nDisallow: /";
}
}
// Инициализация
WP_Disable_Indexing::init();
Пример 4: Установка типа окружения в конфигурации сервера
Вы можете настроить тип окружения на уровне сервера, используя .htaccess
или конфигурацию Nginx. Пример для .htaccess
:
RewriteCond %{HTTP_HOST} ^staging.example.com$
RewriteRule .? - [E=WP_ENVIRONMENT_TYPE:staging]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule .? - [E=WP_ENVIRONMENT_TYPE:local]
Для Nginx можно использовать следующий код:
fastcgi_param WP_ENVIRONMENT_TYPE staging;
Заключение
Функция wp_get_environment_type()
является мощным инструментом для управления различными средами в WordPress. Она позволяет легко контролировать поведение сайта в зависимости от его состояния, что особенно полезно для разработчиков и администраторов сайтов. Убедитесь, что вы правильно настраиваете тип окружения для обеспечения оптимальной работы вашего проекта.