Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

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 🙂

La entrada Para qué sirven la constante WP_ENVIRONMENT_TYPE y la función wp_get_environment_type() la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

Enregistrer un commentaire

0 Commentaires