Mendeteksi apakah WP berjalan di bawah WP-CLI

22

Saya menggunakan alat WP-CLI yang luar biasa. Karena ketergantungan pada variabel lingkungan Apache untuk kasus penggunaan tertentu, saya perlu mengaktifkan sedikit kode untuk menjalankan hanya ketika berjalan di bawah WP-CLI. Bagaimana saya bisa mendeteksi jika WP berjalan di bawah WP-CLI?

Dalam kasus khusus ini saya bisa memeriksa keberadaan variabel lingkungan Apache yang dimaksud. Namun, saya ingin mengetahui metode kanonik yang lebih umum untuk diperiksa. Terima kasih.

dotancohen
sumber

Jawaban:

24

Di dalam php/wp-cli.phpkami menemukan baris-baris ini:

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

sehingga Anda dapat memeriksa apakah WP_CLIatau WP_CLI_VERSIONditentukan.

birgire
sumber
7
WP_CLIadalah konstanta yang lebih disukai untuk diperiksa
Daniel Bachhuber
Terima kasih telah berkomentar - ya dan juga jauh lebih pendek, hanya ingin tahu tentang kemungkinan lain ;-) @DanielBachhuber
birgire
@dotancohen Anda sebaiknya mempertimbangkan untuk menerima jawaban oleh Ryan McCue, karena ini menunjukkan secara eksplisit cara memeriksanya.
birgire
@Birgire, bolehkah saya meminta Anda untuk melihat pertanyaan terkait bidang khusus di sini: wordpress.stackexchange.com/questions/265852/… ?
Istiaque Ahmed
26

Pemeriksaan kanonik untuk WP-CLI yang digunakan di sebagian besar plugin dan secara khusus disebutkan dalam dokumen adalah untuk memeriksa WP_CLIapakah telah didefinisikan dan disetel ke true:

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