web-dev-qa-db-ja.com

を使ってWP-CLIを実行します。 PHP

私はWP-CLIをMacにインストールしました。そして次のステップはPHPスクリプトを使ってWP-CLIコマンドを実行することです。

次のように実装しようとしましたが、何も起こりません。誰かが私のコードを見て、私が間違っていることを教えてもらえますか?

Dockerを使用していて、WPが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>";

PHPファイルを使用してwp-cliを設定および設定する必要がありますか?

また、私の端末でwp --infoと入力すると、以下の情報が表示されます。 Package Dirとグローバル設定以外には何も表示されません。 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
WKL

wp --infoの出力に関しては、それは理にかなっています。パッケージがインストールされていない場合(wp package --helpまたはグローバル設定ファイル(wp-cli.yml)を参照)、それらの項目は空白になります。

wpコマンドは任意の場所から実行できます。 Webサイトのフォルダ構造内のどこかにいる場合は、wp-config.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バイナリ:/usr/local/Cellar/php71/7.1.1_12/bin/php
PHPのバージョン:7.1.1 
 php.ini使用:/usr/local/etc/php/7.1 /php.ini
WP-CLIルートディレクトリ:phar://wp-cli.phar 
 WP-CLIベンダーディレクトリ:phar://wp-cli.phar/vendor 
 WP_CLI pharパス:/Users/shawnhooper
WP-CLIパッケージディレクトリ:/Users/shawnhooper/.wp-cli/packages/
WP-CLIグローバル設定:
 WP- CLIプロジェクト構成:
 WP-CLIバージョン:1.3.0 

プロジェクトの公式GitHubレポジトリのPHPからWP-CLIコマンドを実行することについても、かなり長い議論があります。この問題に興味があるかもしれません: https://github.com/wp-cli/wp-cli/issues/1924

5
Shawn H