Para qué sirven la constante WP ENVIRONMENT TYPE y la función wp get environment type

En la versión 5.5 de WordPress se añadió una nueva función wp_get_environment_type para diferenciar acciones dependiendo del estado de un sitio WordPress: en producción, local, ensayos o en vivo.

Es una función especialmente útil para desarrolladores de plugins y temas o empresas de hosting que quieran lanzar acciones diferentes, dependiendo del estado de desarrollo de la web.

Valores de la función wp_get_environment_type

Dependiendo del estado de la web los distintos valores que se pueden utilizar son los siguientes:

  • local – Entornos de desarrollo local.
  • development – Entornos en fase de desarrollo.
  • staging – Entornos de pruebas/ensayos/staging.
  • production – Cuando la web ya está en producción/vivo.

Usos de la función wp_get_environment_type

Posibles uso que se me ocurren, y que pocos aún aplican salvo honrosas excepciones, podrían ser:

  • Empresas de hosting que, al crear un staging de tu web para desarrollo de nuevas funcionalidades, desactiven el indexado del staging y plugins que requieran conexión automática con servicios externos. Luego, al pasar de staging a producción reactivar todo de nuevo.
  • Plugins de SEO/Seguridad/Optimización que apliquen distintas configuraciones según el estado de desarrollo de la web. En esto ya están tardando.
  • Aplicaciones de instalación de WordPress en entornos locales que apliquen diferentes configuraciones para este tipo de estados de desarrollo.

Ejemplos de uso de wp_get_environment_type

Un ejemplo genérico de uso sería algo así:

switch ( wp_get_environment_type() ) {
case 'local': //Si el entorno es local
case 'development': //Si el entorno es en fase de desarrollo
no_hacer_nada();
break;

case 'staging': //Si el entorno es un ensayo/staging
hacer_algo_de_staging();
break;

case 'production': //Si el entorno ya es producción/vivo
default:
hacer_algo_de_produccion();
break;
}

Y, si nos planteamos algo concreto, podrías crear un mu-plugin que modificase el archivo robots.txt si la web está en producción, así:

<?php
/* Evitar rastreo de robots en producción */
if ( 'production' !== wp_get_environment_type() ) {
// Rastreo de robots.
add_filter( 'robots_txt', 'wpdocs_name_block_crawling', 999 );

// Activamos la opción de "Disuadir a los motores de búsqueda de indexar este sitio"
add_filter( 'pre_option_blog_public', '__return_zero', 999 );
}

/* Filtramos el archivo robots.txt para que evite el rastreo en entornos que no sean de producción */
function wpdocs_name_block_crawling( $output ) {
$output = '# El rastreo está bloqueado en no-producción' . PHP_EOL;
$output .= 'User-agent: *' . PHP_EOL;
$output .= 'Disallow: /';
return $output;
}

Chulo ¿eh?

Cómo establecer el tipo de entorno

Hay dos maneras de establecer en una instalación de WordPress el tipo de entorno, para que el plugin/tema/hosting pueda invocar acciones dependiendo de su estado mediante la función wp_get_environment_type.

Se procesan en el siguiente orden con cada opción secuencial anulando cualquier valor anterior:

  1. La variable PHP de entorno WP_ENVIRONMENT_TYPE
  2. La constante WP_ENVIRONMENT_TYPE.

Para ambos, si el valor del entorno no está en la lista de entornos permitidos, el valor por defecto será production.

Entornos de desarrollo en wp-config.php

La forma más sencilla es claramente definiendo la constante en el archivo wp-config.php:

define( 'WP_ENVIRONMENT_TYPE', 'development' );

Como vimos antes, los posibles valores son: local, development, staging o production, siendo este último el valor por defecto, así que si fuera el caso no hace falta añadir la constante.

Como nota adicional, cuando se define la constante WP_ENVIRONMENT_TYPE como development, se activa automáticamente el modo DEBUG.


Ya me contarás pero me parece la función wp_get_environment_type me parece realmente útil, especialmente para empresas de hosting y desarrolladores de plugins concienzudos ¿no crees?

En cualquier caso, espero que hoy hayas aprendido algo más sobre WordPress … que igual no conocías 🙂

(3 votos, promedio: 5) Valora este artículo para ayudar a mejorar la calidad del blog

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Sobre el autor

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
  • Responsable: Fernando Tellado ([email protected])
  • Fin del tratamiento: Moderación de comentarios para evitar spam
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
  • Derechos: Acceso, rectificación, portabilidad, olvido

 

Ir arriba Ir al contenido