Inizializzare l'ambiente WordPress per utilizzarlo in uno script da riga di comando
Ho uno script da riga di comando per la manutenzione di un plugin WordPress e devo caricare il core di WordPress per poter accedere alle sue funzioni.
Questo problema è molto simile a Inizializzare l'ambiente WordPress per utilizzarlo in uno script cron reale. Tuttavia differisce poiché la domanda citata è pensata per l'uso con uno script cron (reale) che può essere implementato in modo diverso rispetto all'avvio di uno script PHP da riga di comando. Poiché la domanda citata è già stata risposta e quella risposta non soddisfa le mie esigenze, ho aperto questa domanda.
Quindi, cosa è necessario fare in uno script da riga di comando per inizializzare l'ambiente WordPress?
Correlati

Ho ideato la seguente soluzione. Lo script deve iniziare con il seguente codice.
<?php
if( php_sapi_name() !== 'cli' ) {
die("Destinato ad essere eseguito dalla riga di comando");
}
function find_wordpress_base_path() {
$dir = dirname(__FILE__);
do {
//è possibile controllare altri file qui
if( file_exists($dir."/wp-config.php") ) {
return $dir;
}
} while( $dir = realpath("$dir/..") );
return null;
}
define( 'BASE_PATH', find_wordpress_base_path()."/" );
define('WP_USE_THEMES', false);
global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header;
require(BASE_PATH . 'wp-load.php');
Correlati

Se non vuoi affrontare il processo complicato di caricare WordPress manualmente, puoi semplicemente usare il comando eval-file
di WP-CLI:
wp eval-file my-script.php
Il file my-script.php
può contenere qualsiasi chiamata di funzione di WP. Per esempio:
<?php
global $wpdb;
echo implode( ' ', $wpdb->tables() ) . "\n";
