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!