web-dev-qa-db-ja.com

SSHではなく、WordPress内からWP-CLIを利用する

いくつかの WP-CLI コマンドを デバッグバーコンソールからテストする方法を探しています ここで私は通常テストしますPHP。ウィンドウをSSHに変更したくない場合は、これが効果的な再利用/開発方法CLICLI以外のメソッド。

私は exec を見ましたが、それはコマンドの最後の行に見えるものだけを示しています。

echo exec('ls -la'); // -rw-rw-r-- 1 www-data www-data 18108 Jan 20 21:57 widgets.php

誰かがより複雑な一連のコマンドをひとまとめにして人間が判読しやすい方法で連結しようとしたことはありますか?

1
jgraup

exec() はまだ正しい変数で動作するかもしれません。

$last_line = exec( $command, &$output, &$return_var )

2番目のパラメーターは、関数からの戻り値が最後の行をキャプチャーしている間に、すべての戻りデータをキャプチャーします。



$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>'; 
0
jgraup

WP-CLIは、execspawn、またはfriendsを使用してWebサーバー環境からそれらを実行する権限を持つことができる必要があるという点で、他のサーバーサイドユーティリティと違いはありません。明白な理由から、これらすべての種類のPHP AP​​Iがほとんどのサーバーでブロックされているため、管理していないサーバー(SSHアクセスを持たないことを指示)が実行されることはほとんどありません。ワードプレスのうちWP-CLI。

1
Mark Kaplun