Détecter si WP s'exécute sous WP-CLI

22

J'utilise le merveilleux outil WP-CLI . En raison de la dépendance des variables d'environnement Apache pour un cas d'utilisation spécifique, je dois activer un peu de code pour qu'il s'exécute uniquement lors de l'exécution sous WP-CLI. Comment puis-je détecter si WP fonctionne sous WP-CLI?

Dans ce cas précis, j'ai pu vérifier la présence des variables d'environnement Apache en question. Cependant, je voudrais connaître la méthode canonique plus générale à vérifier. Merci.

dotancohen
la source

Réponses:

24

Dans le php/wp-cli.phpnous trouvons ces lignes:

// 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 ) );

afin que vous puissiez vérifier si WP_CLIou WP_CLI_VERSIONsont définis.

Birgire
la source
7
WP_CLIest la constante préférée à vérifier
Daniel Bachhuber
Merci d'avoir commenté - oui et aussi beaucoup plus court, je me demandais juste d'autres possibilités ;-) @DanielBachhuber
birgire
@dotancohen, vous devriez plutôt envisager d'accepter la réponse de Ryan McCue, car elle montre explicitement comment la vérifier.
birgire
@birgire, puis-je vous demander de jeter un œil à une question liée au champ personnalisé ici: wordpress.stackexchange.com/questions/265852/… ?
Istiaque Ahmed
26

La vérification canonique pour WP-CLI utilisée dans la majorité des plugins et spécifiquement mentionnée dans les documents est de vérifier qu'elle WP_CLIest définie et définie sur true:

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