Cum să inițializezi mediul WordPress pentru utilizarea într-un script de linie de comandă
Am un script de linie de comandă pentru întreținerea unui plugin WordPress și trebuie să încarc core-ul WordPress pentru a putea accesa funcțiile WordPress.
Această problemă este foarte asemănătoare cu Inițializarea mediului WordPress pentru utilizarea într-un script cron real. Totuși, diferă de aceasta deoarece întrebarea menționată este destinată pentru utilizarea cu un script cron (real) care poate fi realizat altfel decât prin pornirea unui script PHP de linie de comandă. Deoarece întrebarea menționată este deja răspunsă și acest răspuns nu îmi satisface nevoile, am început această întrebare.
Deci, ce este necesar într-un script de linie de comandă pentru a inițializa mediul WordPress?
Legături utile

Am venit cu următoarea soluție. Scriptul trebuie să înceapă cu următorul cod.
<?php
if( php_sapi_name() !== 'cli' ) {
die("Menit să ruleze din linia de comandă");
}
function find_wordpress_base_path() {
$dir = dirname(__FILE__);
do {
//este posibil să verifici pentru alte fișiere aici
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');
Legături utile

Dacă nu doriți să vă ocupați de procesul complicat de încărcare manuală a WordPress, puteți utiliza comanda eval-file
din WP-CLI:
wp eval-file my-script.php
Fișierul my-script.php
poate conține orice apel de funcție WP. De exemplu:
<?php
global $wpdb;
echo implode( ' ', $wpdb->tables() ) . "\n";
