Run WP-CLI using PHP

时间:2017-08-18 作者:WKL

我已经在Mac上安装了WP-CLI,下一步是使用PHP脚本执行WP-CLI命令。

我试图用以下方式实现它,但我没有看到任何事情发生。有人能看看我的代码,告诉我我做错了什么吗?

我正在使用Docker并在中安装了WPDocker/xamp/www/wordpress_wwws/htdocs 目录

我是否需要从WP目录中执行PHP代码,或者可以在服务器上的任何目录中执行PHP代码?

define( \'WP_CLI_ROOT\', \'/usr/local/bin/wp\' );
include WP_CLI_ROOT . \'\';
$output = shell_exec("wp --info");
echo "<pre>".$output."</pre>";
是否需要使用PHP文件配置和设置wp cli?

此外,当我在终端上键入wp--info时,会出现以下信息。包目录旁边没有显示任何内容(&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
任何帮助或建议都将不胜感激。

谢谢

1 个回复
最合适的回答,由SO网友:Shawn H 整理而成

关于wp --info 输出,这很有意义。如果未安装任何软件包(请参阅wp package --help 或全局配置文件(wp-cli.yml) 那么这些项目将是空白的。

您可以运行wp 来自任何位置的命令。如果您位于网站文件夹结构中的任何位置,它将通过向上导航文件夹树,自动检测您所在的网站,直到找到wp配置。php文件。

如果从站点文件夹结构之外的位置运行wp,则必须指定path, 像这样:

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

至于从PHP内部执行命令,以下内容对我很有用:

test.php

<?php
$output = shell_exec("wp --info");
echo "<pre>".$output."</pre>";
?>
正在运行php test.php 从命令行,我可以得到:

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
此外,在项目的官方GitHub repo中,关于从PHP运行WP-CLI命令的讨论也很长。您可能会发现这个问题:https://github.com/wp-cli/wp-cli/issues/1924

结束