Eseguire WP-CLI utilizzando PHP

18 ago 2017, 22:51:30
Visualizzazioni: 13.7K
Voti: 7

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

0
Tutte le risposte alla domanda 1
1
12

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

19 ago 2017 00:01:11
Commenti

Grazie Shawn, i suggerimenti sulla pagina GitHub di WP-CLI mi hanno aiutato a eseguire i comandi dallo script PHP.

WKL WKL
21 ago 2017 20:01:04