Verwenden Sie WP-CLI aus WordPress, nicht aus SSH

Ich suche nach einer Möglichkeit, einige WP-CLI- Befehle zu testen, aber von der Debug Bar-Konsole, wo ich normalerweise PHP teste . Für den Fall, dass ich Windows nicht auf SSH umstellen möchte, könnte dies eine Möglichkeit sein, effektive CLI- Methoden außerhalb der CLI wiederzuverwenden / zu entwickeln.

Ich habe exec gesehen, aber es zeigt mir nur, was die letzte Zeile des Befehls zu sein scheint.

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

Hat jemand versucht, eine komplexere Menge von Befehlen zusammenzufassen und auf eine Weise, die besser lesbar ist?

Solutions Collecting From Web of "Verwenden Sie WP-CLI aus WordPress, nicht aus SSH"

WP-CLI unterscheidet sich nicht von anderen serverseitigen Dienstprogrammen darin, dass Sie die Erlaubnis haben müssen, sie mit exec , spawn oder Freunden aus einer Webserver-Umgebung auszuführen. Aus offensichtlichen Gründen werden alle diese Arten von PHP-APIs auf den meisten Servern blockiert und daher ist es unwahrscheinlich, dass ein Server, den Sie nicht verwalten (kein SSH-Zugriff ist ein Hinweis), WP-CLI aus WordPress heraus laufen lässt .

Es sieht so aus, als würde exec() immer noch mit den richtigen Variablen arbeiten.

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

Der zweite Parameter erfasst alle zurückgegebenen Daten, während der Rückgabewert der function die letzte Zeile erfasst.


  • string exec( string $command, array &$output, int &$return_var ) dient zum Aufruf eines Systemkommandos und vielleicht selbst zur Bearbeitung der Ausgabe.
  • string shell_exec( string $cmd ) Führt den Befehl über die Shell aus und gibt die vollständige Ausgabe als String zurück.
  • string system( string $command, int &$return_var ) dient zum Ausführen eines Systemkommandos und zum sofortigen Anzeigen der Ausgabe – vermutlich Text.
  • passthru( string $command, int &$return_var ) dient zum Ausführen eines Systemkommandos, von dem Sie die rohe Rückgabe wünschen – vermutlich etwas Binäres.

 $commands = array( 'wp --version', 'whoami', 'pwd', 'ls -la', 'wp theme list', 'wp plugin list', ); echo '
'.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 '

';