web-dev-qa-db-fra.com

Exécutez WP-CLI en utilisant PHP

J'ai installé WP-CLI sur Mac et l'étape suivante consiste à exécuter les commandes WP-CLI à l'aide du script PHP.

J'ai essayé de l'appliquer de la manière suivante mais je ne vois rien se passer. Quelqu'un peut-il s'il vous plaît regarder mon code et me dire que ce que je fais mal?

J'utilise Docker et j'ai WP installé dans le répertoire Docker/xamp/www/wordpress_wwws/htdocs

Dois-je exécuter le code PHP à partir du répertoire WP ou peut-il figurer dans n’importe quel répertoire du serveur?

define( 'WP_CLI_ROOT', '/usr/local/bin/wp' );
include WP_CLI_ROOT . '';
$output = Shell_exec("wp --info");
echo "<pre>".$output."</pre>";

Dois-je configurer wp-cli avec mes fichiers PHP?

De plus, lorsque je tape wp --info sur mon terminal, les informations suivantes apparaissent. Rien n’apparaît à côté de Package Dir & global config. Dois-je également modifier 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

Toute aide ou suggestion sera très appréciée.

Merci

1
WKL

En ce qui concerne la sortie wp --info, cela a du sens. Si aucun package n'est installé (voir wp package --help ou un fichier de configuration global (wp-cli.yml), ces éléments sont vides.

Vous pouvez exécuter la commande wp à partir de n’importe quel emplacement. Si vous vous trouvez quelque part dans la structure de dossiers de votre site Web, celui-ci détectera automatiquement votre site en naviguant dans l'arborescence jusqu'à ce qu'il trouve un fichier wp-config.php.

Si vous exécutez wp à partir d'un emplacement situé en dehors de la structure de dossiers de votre site, vous devez spécifier la variable path, comme ceci:

wp --path=/path/to/wordpress/site/ core version

En ce qui concerne l'exécution de commandes depuis PHP, ceci fonctionne pour moi:

test.php

<?php
$output = Shell_exec("wp --info");
echo "<pre>".$output."</pre>";
?>

en exécutant php test.php à partir de la ligne de commande, je reçois:

Binaire PHP: /usr/local/Cellar/php71/7.1.1_12/bin/php[.____.PHP version: 7.1.1 
 Php.ini utilisé: /usr/local/etc/php/7.1 /php.ini[.____. SWP-CLI répertoire racine: phar: //wp-cli.phar 
 répertoire du fournisseur WP-CLI: phar: //wp-cli.phar/vendor 
 WP_CLI chemin d'accès phar: /Users/shawnhooper[.____. SWW-CLI packages dir: /Users/shawnhooper/.wp-cli/packages/[.____. SWW-CLI config global: 
 WP- Configuration du projet CLI: 
 Version WP-CLI: 1.3.0 

Il y a également une longue discussion sur l'exécution des commandes WP-CLI à partir de PHP dans le référentiel GitHub officiel du projet. Vous pouvez trouver ce problème intéressant: https://github.com/wp-cli/wp-cli/issues/1924

5
Shawn H