Documentación

Toda la información que buscas, en un sitio

¿Cómo puedo modificar las URLs de staging?

Un sitio de staging (también conocido como instalación de pruebas o ensayo) es un clon de la versión de producción de tu web. Los desarrolladores y usuarios suelen usarlos como zona de pruebas segura en la que testear nuevos plugins, temas y configuraciones sin poner en riesgo la web que visitan sus usuarios. En otras palabras, son el mecanismo perfecto para probar cambios o nuevas funcionalidades sin riesgo de hacer caer tu web.

Posibles problemas con Nelio Content y los entornos de prueba

Nelio Content es un plugin de WordPress que funciona junto a un servicio en la nube. Para que el plugin se pueda comunicar con la nube de Nelio es necesario guardar las credenciales de acceso en la base de datos. Normalmente, esta información no se clona de un sitio a otro (cada web tiene sus credenciales únicas), pero eso es precisamente lo que pasa cuando creas un site de staging: los credenciales se duplican. Esto puede generar algunos conflictos imprevistos, ya que ambos sites podrán modificar la información de la nube sin que el otro se entere.

Por ejemplo, supongamos que tienes una entrada programada para el próximo martes, junto con los mensajes sociales que, cuando se publique, deberán promocionarla. Normalmente, cuando la entrada se auto-publica en WordPress, éste avisa a nuestra nube para indicarle que la entrada ya está publicada y que, por tanto, ya puede empezar a compartir los mensajes sociales.

Pues bien, si antes de publicar la entrada hubiéramos creado una versión de pruebas de nuestra web, podríamos tener problemas. Fíjate que ambos sitios tendrían programada una entrada para publicarse y que, cuando llegase la hora, ambos sitios la publicarían. Esto, a su vez, generaría un par de notificaciones para nuestra nube: una de nuestra web en producción y otra del entorno de pruebas. Como ambos sitios tienen las mismas credenciales, ambas podrían modificar los mensajes que se van a publicar. Si la última notificación que ha procesado nuestra nube es la del sitio de pruebas, Nelio vería que la URL con la que se ha publicado la entrada es la de staging y haría que todos los mensajes publicados apuntaran allí (cosa que, obviamente, no queremos).

La Solución

Para solucionar este problema y otros similares, nuestro plugin supone que cualquier web con la palabra staging en su URL es un sitio de pruebas y, por lo tanto, debe «desactivarse». Si intentas activar Nelio Content en un sitio de pruebas, verás que aparece el siguiente mensaje de aviso en la lista de plugins:

Mensaje de aviso cuando un site parece ser de staging
Si Nelio Content se está ejecutando en un site que parece ser de pruebas, aparecerá el siguiente mensaje de error en la lista de plugins.

Nelio Content dice que mi sitio web es un sitio de staging. ¿Cómo lo arreglo?

Como te decía, cualquier sitio con la palabra staging en su URL será considerado como entorno de pruebas. Así, verás que no puedes usar Nelio Content en una web cuya URL sea, por ejemplo, https://staging.domain.com. Si tu web contiene esa palabra y quieres poder usar Nelio Content, crea un fichero llamado nelio-content-staging.php con el siguiente contenido y súbelo por FTP a wp-content/mu-plugins/nelio-content-staging.php:

<?php
add_filter( 'nelio_content_staging_urls', '__return_empty_array' );

Con ello, crearás un MU-plugin que evitará que Nelio Content se desactive en tu web.

¿Cómo modifico las palabras o URLs que deben considerarse de staging?

Si tu entorno de pruebas no incluye la palabra staging, (por ejemplo, en tu caso usas testing o .dev), pero quieres que Nelio Content se desactive de todas formas en él, puedes modificar la función anterior así:

<?php
function nc_get_staging_urls() {
  return [ 'testing', '.dev' ];
}
add_filter( 'nelio_content_staging_urls', 'nc_get_staging_urls' );

De esa forma, URLs como local.wordpress.devtesting.domain.com se considerará un entorno de desarrollo y Nelio Content no estará operativo.