Detectar si WP se está ejecutando bajo WP-CLI

22

Yo uso la maravillosa herramienta WP-CLI . Debido a la dependencia de las variables de entorno de Apache para un caso de uso específico, necesito habilitar un bit de código para que se ejecute solo cuando se ejecuta bajo WP-CLI. ¿Cómo puedo detectar si WP se ejecuta bajo WP-CLI?

En este caso específico, podría verificar la presencia de las variables de entorno de Apache en cuestión. Sin embargo, me gustaría saber el método canónico más general para verificar. Gracias.

dotancohen
fuente

Respuestas:

24

Dentro del php/wp-cli.phpencontramos estas líneas:

// Can be used by plugins/themes to check if WP-CLI is running or not
define( 'WP_CLI', true );
define( 'WP_CLI_VERSION', trim( file_get_contents( WP_CLI_ROOT . '/VERSION' ) ) );
define( 'WP_CLI_START_MICROTIME', microtime( true ) );

para que pueda verificar si está WP_CLIo WP_CLI_VERSIONestá definido.

Birgire
fuente
77
WP_CLIes la constante preferida para verificar
Daniel Bachhuber
Gracias por comentar: sí y también mucho más corto, solo me preguntaba sobre otras posibilidades ;-) @DanielBachhuber
birgire
@dotancohen, debería considerar aceptar la respuesta de Ryan McCue, ya que muestra explícitamente cómo verificarla.
Birgire
@birgire, ¿puedo pedirle que eche un vistazo a una pregunta relacionada con un campo personalizado aquí: wordpress.stackexchange.com/questions/265852/… ?
Istiaque Ahmed
26

La verificación canónica para WP-CLI utilizada en la mayoría de los complementos y mencionada específicamente en los documentos es verificar WP_CLIy definir en true:

if ( defined( 'WP_CLI' ) && WP_CLI ) {
    // Do WP-CLI-specific things.
}
Ryan McCue
fuente