Ermitteln Sie, ob WP unter WP-CLI ausgeführt wird

22

Ich benutze das wunderbare WP-CLI- Tool. Aufgrund der Abhängigkeit von Apache-Umgebungsvariablen für einen bestimmten Anwendungsfall muss ein Teil des Codes nur dann ausgeführt werden, wenn er unter WP-CLI ausgeführt wird. Wie kann ich feststellen, ob WP unter WP-CLI ausgeführt wird?

In diesem speziellen Fall könnte ich prüfen, ob die betreffenden Apache-Umgebungsvariablen vorhanden sind. Ich würde jedoch gerne die allgemeinere, kanonischere Methode zur Überprüfung kennen. Vielen Dank.

dotancohen
quelle

Antworten:

24

Innerhalb der php/wp-cli.phpfinden wir diese Zeilen:

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

So können Sie überprüfen, ob WP_CLIoder WP_CLI_VERSIONdefiniert sind.

birgire
quelle
7
WP_CLIist die bevorzugte Konstante zu überprüfen
Daniel Bachhuber
Danke fürs Kommentieren - ja und auch viel kürzer, hab mich nur über andere Möglichkeiten gewundert
;-)
@dotancohen Sie sollten stattdessen in Betracht ziehen, die Antwort von Ryan McCue zu akzeptieren, da hier explizit gezeigt wird, wie man sie überprüft.
Birgire
@birgire, darf ich Sie bitten, sich hier eine Frage zu benutzerdefinierten Feldern anzusehen: wordpress.stackexchange.com/questions/265852/… ?
Istiaque Ahmed
26

Die kanonische Prüfung für WP-CLI, die in den meisten Plugins verwendet und in den Dokumenten speziell erwähnt wird, WP_CLIist definiert und auf true gesetzt:

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