Execută WP-CLI folosind PHP

18 aug. 2017, 22:51:30
Vizualizări: 13.7K
Voturi: 7

Am instalat WP-CLI pe Mac și următorul meu pas este să execut comenzi WP-CLI folosind un script PHP.

Am încercat să implementez în felul următor, dar nu se întâmplă nimic. Poate cineva să verifice codul meu și să-mi spună ce greșesc?

Folosesc Docker și am WordPress instalat în directorul Docker/xamp/www/wordpress_wwws/htdocs

Trebuie să execut codul PHP din interiorul directorului WP sau poate fi în orice director de pe server?

define( 'WP_CLI_ROOT', '/usr/local/bin/wp' );
include WP_CLI_ROOT . '';
$output = shell_exec("wp --info");
echo "<pre>".$output."</pre>";

Trebuie să configurez și să setez wp-cli cu fișierele mele PHP?

De asemenea, când introduc wp --info în terminal, apar următoarele informații. Nu apare nimic în afară de Package Dir și global config. Trebuie să fac ajustări și la 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

Orice ajutor sau sugestii ar fi foarte apreciate.

Mulțumesc

0
Toate răspunsurile la întrebare 1
1
12

În ceea ce privește rezultatul comenzii wp --info, este logic. Dacă nu aveți niciun pachet instalat (consultați wp package --help) sau fișiere de configurare globale (wp-cli.yml), atunci acele elemente vor fi goale.

Puteți rula comanda wp din orice locație. Dacă vă aflați oriunde în structura de dosare a site-ului dvs., aceasta va detecta automat site-ul pe care îl utilizați navigând în sus prin arborele de dosare până când găsește un fișier wp-config.php.

Dacă rulați comanda wp dintr-o locație din afara structurii de dosare a site-ului dvs., va trebui să specificați path, astfel:

wp --path=/calea/catre/site/wordpress/ core version

În ceea ce privește executarea comenzilor din PHP, următorul exemplu funcționează pentru mine:

test.php

<?php
$output = shell_exec("wp --info");
echo "<pre>".$output."</pre>";
?>

rulând php test.php din linia de comandă, obțin:

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

De asemenea, există o discuție destul de amplă despre rularea comenzilor WP-CLI din PHP în depozitul oficial GitHub al proiectului. Acest subiect v-ar putea interesa: https://github.com/wp-cli/wp-cli/issues/1924

19 aug. 2017 00:01:11
Comentarii

Mulțumesc Shawn, sugestiile de pe pagina WP-CLI github m-au ajutat să execut comenzi din scriptul PHP.

WKL WKL
21 aug. 2017 20:01:04