Las Constantes de Estado en WordPress

Tiempo de lectura aprox: 6 minutos, 54 segundos

La programación en PHP para WordPress, se beneficia de algunos valores contantes.

Como ya explicamos en artículo de Las constantes de WordPress 5.3, existe un gran número de constantes que podemos usar y para muchas funciones.

En un artículo anterior, detallé las Constantes de propósito General y en esta ocasión, detallaré las que se agrupan como Constantes de Estado que son usadas para identificar un estado en concreto en el que se encuentra WordPress; tranquilo, lo entenderás con los ejemplos.

Las Constantes de Estado

La mayoría de estas constantes son definidas en ciertos estados de la ejecución si ocurren ciertas condiciones. Es decir, pueden no existir y solo aparecer en ciertas condiciones.

Ya sabemos que no es lo mismo «Existir y no tener valor», «Existir y tener valor Nulo», y «NO Existir»; estas tres condiciones pueden parecer iguales a efectos «visuales», pero son absolutamente distintas a efectos de programación (al menos en el lenguaje PHP).

Veamos pues, las Contantes en detalle:

APP_REQUEST

Esta constante es definida si hay una petición «Atom Publishing Protocol». Si no existe una petición de ese tipo, la Constante simplemente no existe.

El valor por defecto es de true, su mera existencia no sería suficiente.

Uso y definición

El «Atom Publishing Protocol (AtomPub)» es un protocolo de nivel de aplicación para publicar y editar recursos web. El protocolo se basa en la transferencia HTTP de representaciones con formato Atom.

Recuerda que la comparación hay que hacerla completa:

if (APP_REQUEST === true)

// o

if (isset(APP_REQUEST) && (APP_REQUEST == true))

Ya que no vale solo con estar definida.

COMMENTS_TEMPLATE

La encontraremos definida si está cargado el formulario de comentarios. Ten en cuenta que podemos programar un formulario en una página o una entrada y que no sea el formulario de comentarios propiamente dicho.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Ya que existen páginas que no admiten comentarios, aunque un formulario pueda solicitar datos, no significa que se active todo el proceso de registro y administración de comentarios que sólo aparece si se usa el formulario adecuado.

Recuerda que la comparación hay que hacerla completa:

if (COMMENTS_TEMPLATE === true)

// o

if (isset(COMMENTS_TEMPLATE) && (COMMENTS_TEMPLATE == true))

Ya que no vale solo con estar definida.

DOING_AJAX

Será definida si se está produciendo una interacción con protocolo «AJAX» entre el cliente y el WordPress.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

La interacción «AJAX» se produce muy a menudo, ya que es la formula usada para comunicar el navegador del cliente (visitante) con el servidor (WordPress) por ejemplo cuando se pulsan botones.

Recuerda que la comparación hay que hacerla completa:

if (DOING_AJAX === true)

// o

if (isset(DOING_AJAX) && (DOING_AJAX == true))

Ya que no vale solo con estar definida.

DOING_AUTOSAVE

Es definida en el momento en que se esta haciendo un guardado automático de una entrada.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

A modo de ejemplo, si hemos desarrollado un plugin que vigile cuando escribimos una nueva entrada y avise cuando la entrada es guardada, por ejemplo vigilando cuando se produce una llamada SQL para guardar la tabla correspondiente, hay que tener en cuenta que se producen varias llamadas de este tipo, ya que se hacen guardados de seguridad con frecuencia.

Recuerda que la comparación hay que hacerla completa:

if (DOING_AUTOSAVE === true)

// o

if (isset(DOING_AUTOSAVE) && (DOING_AUTOSAVE == true))

Ya que no vale solo con estar definida.

DOING_CRON

Esta constante aparecerá definida si WordPress está realizando una tarea «CRON» (una tarea programada o repetitiva).

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Solo en el momento en que WordPress está realizando una de estas tareas, como la publicación programada de una entrada o la copia de seguridad programada cada semana, esta Constante existirá.

Recuerda que la comparación hay que hacerla completa:

if (DOING_CRON === true)

// o

if (isset(DOING_CRON) && (DOING_CRON == true))

Ya que no vale solo con estar definida.

IFRAME_REQUEST

Solo aparecerá definida si WordPress está realizando una «IFRAME_REQUEST» (una Inline Frame).

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Una «IFRAME_REQUEST» se producirá por ejemplo, si tenemos un vídeo de una fuente externa, que se reproduce como parte de una entrada o página.

Recuerda que la comparación hay que hacerla completa:

if (IFRAME_REQUEST === true)

// o

if (isset(IFRAME_REQUEST) && (IFRAME_REQUEST == true))

Ya que no vale solo con estar definida.

IS_PROFILE_PAGE

Esta constante aparecerá definida en el momento en que un usuario cambie alguno de los ajustes de su perfil.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

La «IS_PROFILE_PAGE» es una constante que aparecerá cuando alguno de los ajustes de la página de perfil del usuario cambie, por ejemplo la contraseña, el color del escritorio o cualquier otro dato.

Recuerda que la comparación hay que hacerla completa:

if (IS_PROFILE_PAGE === true)

// o

if (isset(IS_PROFILE_PAGE) && (IS_PROFILE_PAGE == true))

Ya que no vale solo con estar definida.

SHORTINIT

«SHORTINIT» hace que se cargue la mínima expresión de WordPress.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Si lo que queremos es que WordPress cargue sólo las funciones y módulos necesarios para su funcionamiento, podemos solicitar esta condición.

Esta es una Constante que podemos definir en el archivo wp-config.php.

/*  *********** Definición de constantes *********** */
define( 'SHORTINIT', true ); /* Se debe cargar la mínima expresión de WP */

WP_ADMIN

De nuevo una constante que solo estará definida cuando sea necesario, en este caso, cuando hay una petición en el «backend» (el escritorio de administración) de WordPress.

Su valor por defecto es true. Solo su valor true es válido.

Uso y definición

«WP_ADMIN» está definida si hay una petición. Por ejemplo, si solicitamos ver la lista de plugins instalados.

Recuerda que la comparación hay que hacerla completa:

if (WP_ADMIN === true)

// o

if (isset(WP_ADMIN) && (WP_ADMIN == true))

Ya que no vale solo con estar definida.

WP_BLOG_ADMIN

A diferencia de la anterior, esta constante estará definida solo si se está usando uno de los script dentro de /wp-admin/.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

«WP_BLOG_ADMIN» está definida si hay una petición en /wp-admin/.

Recuerda que la comparación hay que hacerla completa:

if (WP_BLOG_ADMIN === true)

// o

if (isset(WP_BLOG_ADMIN) && (WP_BLOG_ADMIN == true))

Ya que no vale solo con estar definida.

WP_IMPORTING

La constante «WP_IMPORTING» es definida si WordPress esta importando datos.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Durante el proceso de importación, tras invocar la utilidad en el menú Herramientas -> Importar, «WP_IMPORTING» está definida hasta el final del proceso.

Recuerda que la comparación hay que hacerla completa:

if (WP_IMPORTING === true)

// o

if (isset(WP_IMPORTING) && (WP_IMPORTING == true))

Ya que no vale solo con estar definida.

WP_INSTALLING

Es una Constante definida si estamos realizando una nueva instalación.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Durante el proceso de instalación o durante una actualización, está presente «WP_INSTALLING» hasta el final del proceso.

Recuerda que la comparación hay que hacerla completa:

if (WP_INSTALLING === true)

// o

if (isset(WP_INSTALLING) && (WP_INSTALLING == true))

Ya que no vale solo con estar definida.

WP_INSTALLING_NETWORK

Al igual que la anterior, es una Constante definida si estamos realizando una nueva instalación.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Durante el proceso de instalación o durante una actualización de una copia de WordPress multisitio (network), está presente «WP_INSTALLING» hasta el final del proceso.

Recuerda que la comparación hay que hacerla completa:

if (WP_INSTALLING_NETWORK === true)

// o

if (isset(WP_INSTALLING_NETWORK) && (WP_INSTALLING_NETWORK == true))

Ya que no vale solo con estar definida.

WP_LOAD_IMPORTERS

«WP_LOAD_IMPORTERS» es una constante definida cuando se ha invocado el proceso de importación.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Aparece cuando estamos en el menú Herramientas -> Importar.

Recuerda que la comparación hay que hacerla completa:

if (WP_LOAD_IMPORTERS === true)

// o

if (isset(WP_LOAD_IMPORTERS) && (WP_LOAD_IMPORTERS == true))

Ya que no vale solo con estar definida.

WP_NETWORK_ADMIN

«WP_NETWORK_ADMIN» es definida si hay un request en /wp-admin/network/.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Es creada cuando hay una petición relacionada con la administración de sitios multi-sitio.

Recuerda que la comparación hay que hacerla completa:

if (WP_NETWORK_ADMIN === true)

// o

if (isset(WP_NETWORK_ADMIN) && (WP_NETWORK_ADMIN == true))

Ya que no vale solo con estar definida.

WP_REPAIRING

«WP_REPAIRING» es definida si hay un request en el proceso de reparación.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Será creada en el momento de haber una petición derivada del proceso de reparación invocado en /wp-admin/maint/repair.php.

Recuerda que la comparación hay que hacerla completa:

if (WP_REPAIRING === true)

// o

if (isset(WP_REPAIRING) && (WP_REPAIRING == true))

Ya que no vale solo con estar definida.

WP_SETUP_CONFIG

«WP_SETUP_CONFIG» es definida durante el proceso de instalación o de configuración de WordPress.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Está presente durante el proceso de instalación o de configuración.

Recuerda que la comparación hay que hacerla completa:

if (WP_SETUP_CONFIG === true)

// o

if (isset(WP_SETUP_CONFIG) && (WP_SETUP_CONFIG == true))

Ya que no vale solo con estar definida.

WP_UNINSTALL_PLUGIN

Como su nombre indica, «WP_UNINSTALL_PLUGIN» es definida durante el proceso de desinstalación de un plugin.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Es creada por el módulo de desisnstalación uninstall.php.

Recuerda que la comparación hay que hacerla completa:

if (WP_UNINSTALL_PLUGIN === true)

// o

if (isset(WP_UNINSTALL_PLUGIN) && (WP_UNINSTALL_PLUGIN == true))

Ya que no vale solo con estar definida.

WP_USER_ADMIN

Es definida si hay un request en /wp-admin/user/.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Cuando se produce un requerimiento en el manejo de usuarios, sea cual sea su rol.

Recuerda que la comparación hay que hacerla completa:

if (WP_USER_ADMIN === true)

// o

if (isset(WP_USER_ADMIN) && (WP_USER_ADMIN == true))

Ya que no vale solo con estar definida.

XMLRPC_REQUEST

Es definida si hay una petición en el API.

Su valor por defecto es true. Al igual que la anterior, solo su valor true es válido.

Uso y definición

Cuando se produce una petición en la API que maneja la conexión XML-RPC.

Recuerda que la comparación hay que hacerla completa:

if (XMLRPC_REQUEST === true)

// o

if (isset(XMLRPC_REQUEST) && (XMLRPC_REQUEST == true))

Ya que no vale solo con estar definida.

Si eres desarrollador y no veo otra razón por la que esto te interese 😉 sabrás lo delicado que es manejar estos temas.

En cualquier caso, recuerda: #QuédateEnCasa, juega, experimenta y, sobre todo, ¡divertirte!


¡Gracias por leernos!


¡Tus comentarios y preguntas nos ayudan a mejorar, por favor comenta!

Deja una respuesta

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

Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.    Más información
Privacidad