Запуск WP-CLI с помощью PHP
Я установил WP-CLI на Mac и следующим шагом хочу выполнять команды WP-CLI с помощью PHP скрипта.
Я попытался реализовать это следующим образом, но ничего не происходит. Может кто-то посмотреть мой код и сказать, что я делаю неправильно?
Я использую Docker, и WordPress установлен в директории Docker/xamp/www/wordpress_wwws/htdocs
Нужно ли выполнять PHP код из директории WP или он может быть в любой директории на сервере?
define( 'WP_CLI_ROOT', '/usr/local/bin/wp' );
include WP_CLI_ROOT . '';
$output = shell_exec("wp --info");
echo "<pre>".$output."</pre>";
Нужно ли настраивать wp-cli для работы с моими PHP файлами?
Также, когда я ввожу wp --info в терминале, появляется следующая информация. Ничего не отображается кроме Package Dir и global config. Нужно ли мне также вносить изменения в 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
Любая помощь или предложения будут очень appreciated.
Спасибо
Относительно вывода команды wp --info
, это логично. Если у вас не установлены какие-либо пакеты (см. wp package --help
) или отсутствуют глобальные конфигурационные файлы (wp-cli.yml
), то эти пункты будут пустыми.
Вы можете запускать команду wp
из любого места. Если вы находитесь внутри структуры папок вашего сайта, она автоматически определит сайт, перемещаясь вверх по дереву папок, пока не найдет файл wp-config.php.
Если команда wp
запускается из места за пределами структуры папок вашего сайта, вам нужно указать path
, например так:
wp --path=/путь/до/папки/wordpress/ 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-репозитории проекта есть довольно длинное обсуждение выполнения команд WP-CLI из PHP. Возможно, вас заинтересует этот issue: https://github.com/wp-cli/wp-cli/issues/1924
