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:
- La variable PHP de entorno
WP_ENVIRONMENT_TYPE
- 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.
0 Commentaires