Eseguire WP-CLI utilizzando PHP
Ho installato WP-CLI sul Mac e il mio prossimo passo è eseguire comandi WP-CLI utilizzando uno script PHP.
Ho provato a implementarlo nel modo seguente ma non vedo accadere nulla. Qualcuno potrebbe guardare il mio codice e dirmi cosa sto sbagliando?
Sto utilizzando Docker e ho WP installato nella directory Docker/xamp/www/wordpress_wwws/htdocs
Devo eseguire il codice PHP dalla directory WP o può essere in qualsiasi directory sul server?
define( 'WP_CLI_ROOT', '/usr/local/bin/wp' );
include WP_CLI_ROOT . '';
$output = shell_exec("wp --info");
echo "<pre>".$output."</pre>";
Devo configurare e impostare wp-cli con i miei file PHP?
Inoltre, quando digito wp --info sul mio terminale appare la seguente informazione. Non appare nulla accanto a Package Dir e global config. Devo anche apportare modifiche a wp-cli?
MAC-00343:htdocs mike$ wp --info
PHP binary: /usr/bin/php
PHP version: 5.6.30
php.ini used:
WP-CLI root dir: phar://wp-cli.phar
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /Users/mike/Docker/xamp/www/wordpress_wwws/htdocs
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.3.0
Qualsiasi aiuto o suggerimento sarà molto apprezzato.
Grazie
Per quanto riguarda l'output di wp --info
, ha senso. Se non hai alcun pacchetto installato (vedi wp package --help
) o file di configurazione globale (wp-cli.yml
), allora quelle voci risulteranno vuote.
Puoi eseguire il comando wp
da qualsiasi posizione. Se ti trovi all'interno della struttura di cartelle del tuo sito web, rileverà automaticamente il sito su cui stai operando navigando verso l'alto nell'albero delle cartelle finché non troverà un file wp-config.php.
Se esegui wp da una posizione al di fuori della struttura di cartelle del tuo sito, dovrai specificare il path
, in questo modo:
wp --path=/percorso/del/sito/wordpress/ core version
Per quanto riguarda l'esecuzione di comandi da PHP, questo codice funziona per me:
test.php
<?php
$output = shell_exec("wp --info");
echo "<pre>".$output."</pre>";
?>
Eseguendo php test.php
dalla riga di comando, ottengo:
PHP binary: /usr/local/Cellar/php71/7.1.1_12/bin/php PHP version: 7.1.1 php.ini used: /usr/local/etc/php/7.1/php.ini WP-CLI root dir: phar://wp-cli.phar WP-CLI vendor dir: phar://wp-cli.phar/vendor WP_CLI phar path: /Users/shawnhooper WP-CLI packages dir: /Users/shawnhooper/.wp-cli/packages/ WP-CLI global config: WP-CLI project config: WP-CLI version: 1.3.0
Inoltre, c'è una discussione piuttosto lunga sull'esecuzione di comandi WP-CLI da PHP nel repository GitHub ufficiale del progetto. Potresti trovare interessante questo issue: https://github.com/wp-cli/wp-cli/issues/1924
