Detectar se o WP está sendo executado no WP-CLI

22

Eu uso a maravilhosa ferramenta WP-CLI . Devido à dependência das variáveis ​​de ambiente Apache para um caso de uso específico, eu preciso habilitar um pouco de código para ser executado apenas quando executado no WP-CLI. Como posso detectar se o WP está sendo executado no WP-CLI?

Nesse caso específico, pude verificar a presença das variáveis ​​de ambiente Apache em questão. No entanto, gostaria de conhecer o método canônico mais geral de verificar. Obrigado.

dotancohen
fonte

Respostas:

24

Dentro do php/wp-cli.php, encontramos estas linhas:

// 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 você possa verificar se WP_CLIou WP_CLI_VERSIONestá definido.

Birgire
fonte
7
WP_CLIé a constante preferido de verificar
Daniel Bachhuber
Obrigado por comentar - sim, e também muito mais curto, só estava me perguntando sobre outras possibilidades ;-) @DanielBachhuber
birgire
@dotancohen você deve aceitar a resposta de Ryan McCue, pois mostra explicitamente como verificá-la.
22816 birgire
@ Birgire, posso pedir que você dê uma olhada em uma pergunta relacionada a um campo personalizado aqui: wordpress.stackexchange.com/questions/265852/… ?
Istiaque Ahmed
26

A verificação canônica para o WP-CLI usada na maioria dos plug-ins e mencionada especificamente nos documentos é verificar se WP_CLIestá definida e definida como true:

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