从WordPress内部使用WP-CLI,而不是SSH

时间:2016-02-29 作者:jgraup

我在想办法测试一下WP-CLI 命令,但来自Debug Bar Console 我通常测试的地方PHP. 如果我不想将windows切换到SSH, 这可能是一种重用/开发有效CLI 方法之外的CLI.

我看到了exec 但它只显示命令的最后一行。

echo exec(\'ls -la\'); // -rw-rw-r-- 1 www-data www-data 18108 Jan 20 21:57 widgets.php
有没有人尝试过将一组更复杂的命令串在一起,并以一种更易于人类阅读的方式?

2 个回复
最合适的回答,由SO网友:jgraup 整理而成

看起来像是exec() 可能仍然可以使用正确的变量。

$last_line = exec( $command, &$output, &$return_var )
第二个参数捕获所有返回数据,而函数的返回捕获最后一行。



$commands = array(
    \'wp --version\',
    \'whoami\',
    \'pwd\',
    \'ls -la\',
    \'wp theme list\',
    \'wp plugin list\',
);

echo \'<pre>\'.PHP_EOL;
foreach ($commands as $command ) { 

    // run command
    exec($command, $retval);

    // convert output array to text
    echo implode(PHP_EOL, $retval) . PHP_EOL;

    // clear the var for the next command
    unset($retval);
}
echo \'</pre>\'; 

SO网友:Mark Kaplun

WP-CLI与任何其他服务器端实用程序没有什么不同,因为您需要有权限使用exec, spawn 或者朋友。由于显而易见的原因,所有这些类型的PHP API都将在大多数服务器上被阻止,因此,您不管理的服务器(不具有SSH访问权限是一种指示)不太可能允许您在wordpress中运行WP-CLI。