web-dev-qa-db-fra.com

Détecter si WP est en cours d'exécution sous WP-CLI

J'utilise le merveilleux WP-CLI tool. En raison de la dépendance vis-à-vis des variables d’environnement Apache pour un cas d’utilisation spécifique, je dois activer l’exécution d’un bout de code uniquement lorsqu’elle s’exécute sous WP-CLI. Comment puis-je détecter si WP est exécuté sous WP-CLI?

Dans ce cas spécifique, je pourrait vérifier la présence des variables d'environnement Apache en question. Cependant, j'aimerais connaître la méthode plus générale, canonique, à vérifier. Je vous remercie.

20
dotancohen

Dans le php/wp-cli.php nous 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_CLI ou WP_CLI_VERSION sont définis.

23
birgire

La vérification canonique de WP-CLI utilisée dans la majorité des plugins et mentionnée spécifiquement dans la documentation est de vérifier que WP_CLI est défini et défini sur true

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