Instalarea, actualizarea și gestionarea pluginurilor WordPress cu WP-CLI
Publicat: 2022-07-26
WP-CLI vă permite să faceți practic orice puteți face în administratorul WordPress, dar pe linia de comandă. Acest lucru economisește mult timp și oferă un flux de lucru mai curat. Puteți utiliza WP-CLI pentru a gestiona nucleul WordPress, a rula actualizări ale temei, a gestiona instalările pe mai multe site-uri și multe altele. În acest articol ne vom concentra asupra unuia dintre cele mai comune cazuri de utilizare, gestionarea pluginurilor WordPress.
Comenzile WP-CLI sunt toate structurate în același mod. Există întotdeauna o comandă părinte (cum ar fi wp plugin
) și o subcomandă (cum ar fi install
), urmate de parametri și comutatoare. Ne vom concentra pe wp plugin
și subcomenzile sale în acest articol, dar puteți vedea o explicație mai detaliată în ghidul nostru pentru structura comenzilor WP-CLI.
Acest articol a folosit comanda wp plugin
ca exemplu, evidențiind modul de instalare și activare a pluginurilor folosind WP-CLI. În acest articol, vom aprofunda mai mult cum să ne gestionăm pluginurile folosind interfața de linie de comandă WordPress.
Instalarea și activarea pluginurilor
În prezent, există 16 subcomenzi oficiale pentru comanda wp plugin
parent. În această secțiune vom acoperi subcomenzile pentru instalare și activare. Ne vom uita, de asemenea, la modul de instalare și activare a pluginurilor cu o singură comandă. Vom analiza, de asemenea, cum să instalați pluginuri din alte surse decât Directorul de pluginuri WordPress.
Introduceți wp plugin install
urmat de slug-ul oficial al pluginului pentru a instala cea mai recentă versiune:
wp plugin instala hello-dolly Instalarea Hello Dolly (1.7.2) Se descarcă pachetul de instalare de pe https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip... Se utilizează fișierul stocat în cache „/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip”... Autenticitatea hello-dolly.1.7.2.zip nu a putut fi verificată deoarece nu a fost găsită nicio semnătură. Se desface pachetul... Se instalează pluginul... Pluginul instalat cu succes. Succes: instalat 1 din 1 pluginuri.
Apoi, activăm pluginul folosind comanda wp plugin activate
:
pluginul wp activează hello-dolly Pluginul „hello-dolly” a fost activat. Succes: activat 1 din 1 pluginuri.
Căutarea unui Plugin Slug
Rețineți că slug-ul este adesea diferit de numele pluginului. Slug-ul este vizibil în adresa URL a pluginului din directorul de pluginuri WordPress, dar vă puteți accelera fluxul de lucru, rămânând cu linia de comandă și folosind subcomanda de search
, urmată de doi parametri și valorile acestora: --per-page=1
și --fields=name,slug
.
Parametrul opțional --per-page
spune WP-CLI câte rezultate să ne arate, în acest caz doar unul. Acesta va afișa implicit 10 rezultate dacă nu îi dați acest parametru. I-am dat o valoare de 1
aici, deoarece vreau doar să văd rezultatul cel mai relevant.
Parametrul --fields
îi spune WP-CLI să solicite anumite câmpuri din API, în acest caz numele și slug-ul pluginului. Există o gamă largă de valori pe care le puteți utiliza aici, inclusiv version
pentru a vedea numărul versiunii curente și rating
pentru a vedea evaluările pluginului atât ca procent, cât și ca număr total de evaluări. În schimb, puteți utiliza --field=<field>
dacă doriți să afișați doar rezultatul unui singur câmp. Trebuie să utilizați fie parametrul --fields
, fie --field
cu comanda wp plugin search
.
Căutare plugin wp „wp offload media” --per-page=1 --fields=name,slug Succes: Se afișează 1 din 66 de pluginuri. +------------------------------------------------- -------------------------------+------------------ --------+ | nume | melc | +------------------------------------------------- -------------------------------+------------------ --------+ | WP Offload Media Lite pentru Amazon S3, DigitalOcean Spaces și Google Cloud Sto | amazon-s3-și-cloudfront | | furie | | +------------------------------------------------- -------------------------------+------------------ --------+
Deoarece răspunsul pentru această comandă este o listă, aceasta este o bună oportunitate de a arăta ce poate face parametrul --format
. Să cerem WP-CLI să ne dea acea listă în format JSON și apoi să o direcționăm prin utilitarul jq pentru o formatare mai frumoasă. Utilitarul jq este un procesor JSON ușor de linie de comandă pe care îl puteți instala la linkul de mai sus sau îl puteți încerca online. Asigurați-vă că omiteți | jq
| jq
din comanda de mai jos dacă nu o aveți instalată.
Când cerem ieșire formatată JSON, WP-CLI omite mesajul de stare, astfel încât să nu primim JSON rupt:
$ wp plugin search "wp offload media" --per-page=1 --fields=name,slug --format=json | jq [ { „name”: „WP Offload Media Lite pentru Amazon S3, DigitalOcean Spaces și Google Cloud Storage”, „slug”: „amazon-s3-and-cloudfront” } ]
Pentru a activa pluginul odată ce este instalat, utilizați wp plugin activate
urmat de slug-ul oficial al pluginului.
Instalarea și activarea unui plugin în același timp
Când vine vorba de gestionarea pluginurilor dvs. cu WP-CLI, unul dintre marile avantaje este că puteți instala și activa un plugin cu o singură comandă. În timp ce activate
poate fi folosit ca o subcomandă cu wp plugin
, poate fi folosit și ca parametru cu comanda wp plugin install
:
# Instalarea și activarea pluginului în același timp wp plugin install --activate hello-dolly
Instalarea unei versiuni specifice de plugin
Nu este neobișnuit să doriți să instalați o anumită versiune a unui plugin în scopuri de testare. Atâta timp cât versiunea dorită este încă disponibilă în directorul de pluginuri WordPress, puteți selecta orice versiune pe care o considerați potrivită:
# Instalarea unei anumite versiuni de plugin wp plugin instalează woocommerce --version=5.5.3
Instalarea pluginurilor din alte locații
Directorul de pluginuri WordPress nu este singurul loc în care putem obține pluginuri. De asemenea, putem instala un plugin direct din sistemul de fișiere. De cele mai multe ori, atunci când cumpărați un plugin premium, primiți livrarea inițială sub forma unui fișier zip. WP-CLI va instala cu plăcere acel fișier zip direct, fără a fi nevoie să extrageți mai întâi pachetul:
# Instalarea unui plugin din dosarul Descărcări Instalare plugin $ wp ~/Downloads/advanced-custom-fields-pro.zip
Acest lucru funcționează și dacă pluginul pe care doriți să-l instalați este disponibil pe o adresă URL, poate accesibil doar prin furnizarea de acreditări prin intermediul parametrilor de solicitare sau pe un server cu un certificat autosemnat:
# Obțineți pluginul de la o adresă URL instalare plugin wp http://www.hellfish.media/my-plugin.zip # ...sau chiar un fișier privat dintr-o găleată Amazon: Instalare plugin wp https://s3.amazonaws.com/bucketname/my-plugin.zip?X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123 # De pe serverul nostru intern cu un certificat autosemnat: wp plugin install https://intranet.hellfish.media/my-plugin.zip --insecure
Actualizarea pluginurilor cu WP-CLI
Odată ce aveți un plugin instalat, este important să îl mențineți actualizat din motive de securitate. Pentru a afla dacă există pluginuri de actualizat, putem rula comanda wp plugin list
:
lista de pluginuri wp +-------------------------------+----------+------ -----+---------+ | nume | stare | actualizare | versiunea | +-------------------------------+----------+------ -----+---------+ | amazon-s3-și-cloudfront | activ | disponibil | 2.6.1 | | salut-dolly | activ | disponibil | 1.7.1 | | wunderdevmu | obligatoriu | niciunul | 1,0 | +-------------------------------+----------+------ -----+---------+
În acest caz, atât pluginurile Hello Dolly, cât și WP Offload Media au nevoie de actualizări. Desigur, există o subcomandă separată pentru acea update
numită.
Putem fie să le actualizăm unul câte unul, fie să fim un pic leneși și să actualizăm tot ce trebuie actualizat dintr-o singură mișcare folosind comutatorul --all
. Comportamentul implicit al comenzii de actualizare este actualizarea completă până la cea mai recentă versiune disponibilă, care include actualizări majore ale versiunii. Dar folosind comutatorul --minor
putem fi puțin mai atenți și putem actualiza doar pentru versiunile minore. De exemplu, îi putem spune să se actualizeze de la 1.2.3 la 1.3.0, dar nu la 2.0.0. Putem chiar să fim foarte atenți și să folosim comutatorul --patch
pentru a limita actualizările la doar patch-uri, adică de la 1.2.3 la 1.2.5, dar niciodată la 1.3.0.
# Actualizați cu atenție pluginurile unul câte unul actualizare plugin wp wp-offload-media actualizare plugin wp hello-dolly # Abordarea cowboy actualizare plugin wp --all # Un pic mai sensibil actualizare plugin wp --all --minor # Foarte defensiv actualizare plugin wp --all --patch
Notă: --minor
și --patch
presupun că pluginul utilizează versiunea semantică. Departe de toate pluginurile care fac acest lucru, așa că va trebui să cauți acest lucru pentru pluginurile pe care le folosești, astfel încât să nu primești surprize neplăcute. Opțiunea --dry-run
vă permite să verificați și să vă asigurați că comenzile sunt corecte:
# Testați actualizarea unui singur plugin pentru doar patch-uri actualizare plugin wp hello-dolly --patch --dry-run
Parametrul --exclude=<plugin name>
este folosit pentru a indica ce pluginuri ar trebui excluse de la actualizare. Includeți numele pluginurilor ca o listă separată prin virgulă, iar WP-CLI va actualiza toate celelalte plugin-uri, lăsându-le în pace:

actualizare plugin wp --all --exclude=hello-dolly Se activează modul de întreținere... Se descarcă actualizarea de pe https://deliciousbrains.com/my-account/download/7512/?version=2.6.2... Se despachetează actualizarea... Se instalează cea mai recentă versiune... Se elimină versiunea veche a pluginului... Pluginul a fost actualizat cu succes. Se dezactivează modul de întreținere... +--------------------------+-------------+-------- -----+---------+ | nume | versiunea_veche | versiune_nouă | stare | +--------------------------+-------------+-------- -----+---------+ | amazon-s3-și-cloudfront | 2.6.1 | 2.6.2 | Actualizat | +--------------------------+-------------+-------- -----+---------+
Forțarea reinstalării pluginului
Majoritatea pluginurilor premium vin cu propriul lor verificator de actualizare încorporat, care funcționează excelent și cu WP-CLI. Din experiența mea, orice plugin care poate fi actualizat cu un singur clic prin intermediul paginilor de administrare WordPress poate fi, de asemenea, actualizat folosind WP-CLI. Dar, în unele cazuri, actualizările sunt furnizate printr-o nouă versiune a fișierului zip pe care trebuie să o puneți în locul corect pe server. Puteți aplica acest tip de actualizări forțând o reinstalare a pluginului folosind comutatorul --force
:
# Forțați reinstalarea unui plugin wp plugin install ~/Downloads/my-custom-plugin-v2.zip --force
Activarea actualizărilor automate
Începând cu versiunea 5.5, WordPress poate actualiza automat pluginurile. Actualizările automate trebuie să fie activate pentru fiecare plugin individual. WP-CLI nu oferă nicio gestionare în bloc pentru actualizările automate. Trebuie făcută individual pentru fiecare plugin, utilizând subcomandă auto-updates
. Puteți vedea cum funcționează cu următoarele comenzi:
# Verificați dacă actualizările automate sunt activate pentru un plugin pluginul wp actualizează automat starea hello-dolly # Activați actualizările automate Actualizările automate ale pluginului wp permit hello-dolly # Dezactivează-l din nou Actualizările automate ale pluginului wp dezactivează hello-dolly
Dezactivarea și eliminarea pluginurilor
Instalarea, activarea și actualizarea pluginurilor sunt printre cele mai comune sarcini, dar există și alte sarcini de gestionare a pluginurilor pe care WP-CLI le poate gestiona pentru noi.
Dacă ați încercat vreodată să vă dați seama ce cauzează o problemă pe site-ul dvs. WordPress, probabil că ați fost sfătuit să dezactivați toate pluginurile ca unul dintre primii pași. Este posibil să fac acest lucru cu manipularea în vrac într-un browser web, dar întotdeauna mă face să mă simt nervos. Prefer să o fac prin linia de comandă folosind comutatorul --all
.
# Dezactivați toate pluginurile simultan wp plugin dezactivare --all # Și reactivează-le din nou wp plugin activate --all
Eliminarea completă a unui plugin se face cu ușurință și cu WP-CLI. O diferență între a face acest lucru prin linia de comandă și prin browser este că WP-CLI vă va permite să eliminați un plugin fără a rula mai întâi cârligele de dezactivare. Dacă ați instalat vreodată un plugin care blochează WordPress în timpul dezactivării, știți de ce poate fi atât de util:
# Dezactivați și dezinstalați wp plugin dezactivați hello-dolly --uninstall # Eliminați un plugin fără a-i oferi șansa de a se dezactiva wp plugin șterge hello-dolly
Există, de asemenea, subcomandă de toggle
care este legată de activarea și dezactivarea pluginurilor. Acesta va inversa sau comuta starea de activare, astfel încât să se schimbe la opusul stării curente. Puteți adăuga --network
pentru a activa sau dezactiva pluginul pentru o întreagă rețea multisite.
Sume de verificare pentru plugin
WP-CLI are capacitatea de a compara sumele de verificare ale pluginurilor dvs. instalate cu sumele de control pentru același plugin și versiune din Directorul de pluginuri WordPress. Aceasta este o modalitate foarte eficientă de a determina dacă fișierele plugin din instalarea dvs. WordPress au fost manipulate. Dacă au făcut-o, este un indiciu puternic că ați fost piratat.
Sumele de control sunt algoritmi speciali de computer care pot prelua o intrare de orice tip și dimensiune și o pot converti într-un șir scurt. Acest șir are de obicei aproximativ 20-40 de caractere, ceea ce îl face potrivit pentru stocarea într-o bază de date. Acest șir rezultat se numește hash, o semnătură sau, din motive istorice, o sumă de control.
Ceea ce face ca acești algoritmi să fie unici este că, dacă chiar și un singur caracter se schimbă în intrare, rezultatul va fi complet diferit. Introduceți toate fișierele unui plugin în algoritmul sumei de control unul câte unul și veți ajunge cu o semnătură mică, sau sumă de control, care reprezintă întregul plugin.
De fiecare dată când o nouă versiune a unui plugin este publicată în Directorul de pluginuri WordPress, suma de verificare este calculată și salvată pentru versiunea respectivă. Câteva luni mai târziu, când doriți să verificați dacă nu ați fost piratat, puteți cere WP-CLI să calculeze suma de control pentru pluginurile dvs. și să le comparați cu sumele de control originale pe care le păstrează WordPress. Dacă există fișiere adăugate, modificate sau lipsă din partea dvs., suma de control pentru plugin va diferi de cea originală și WP-CLI va face ceva zgomot în acest sens.
Subcomanda care se ocupă de această magie de verificare a hash-ului se numește verify-checksums
și este, în esență, aceeași cu întrebarea „sunt pluginurile mele neschimbate de când le-am primit din directorul de pluginuri WordPress?”
# Verificați dacă există un singur plugin wp plugin verify-checksums hello-dolly Succes: Verificat 1 din 1 pluginuri # Verificați toate pluginurile care provin din repo wp plugin verify-checksums --all
Acest lucru funcționează numai pentru pluginurile care au fost instalate din directorul oficial de pluginuri WordPress, astfel încât pluginurile dvs. premium nu vor fi verificate de această comandă. Subcomanda verify-checksums
există și pentru wp core
dar nu poate fi folosită pentru a verifica temele WordPress.
Comenzi pentru scriptare
Până acum, comenzile pe care le-am acoperit sunt utile pentru oricine are nevoie să gestioneze pluginurile WordPress. Ultimul set de wp plugin
-ul wp pe care îl voi acoperi sunt de interes în primul rând pentru dezvoltatorii WordPress, deoarece sunt destinate în mare parte utilizării în scripturile Bash.
Mai întâi trebuie să vorbim puțin despre codurile de ieșire Unix. Într-un sistem Unix, toate programele care ies din rulare revin cu un cod de ieșire. Interpretarea standard este că codul de ieșire 0
înseamnă că programul s-a terminat bine, în timp ce un cod de ieșire diferit de zero indică o eroare.
Codurile de eroare sunt adesea folosite în scripturile shell pentru a fi utilizate în declarațiile if/else
și în alte forme de ramificare. Nu vedem codul de ieșire când rulăm o comandă în mod normal din promptul de comandă, dar îl putem găsi oricând folosind $?
:
# Rulați ceva care funcționează și obțineți codul de ieșire Data eco $? 0 # Rulați ceva care eșuează ls /nonexistingfolder ls: /idongfdg: Nu există un astfel de fișier sau director eco $? 1
În WP-CLI, avem o mulțime de comenzi care sunt destinate în principal să verifice ceva și să returneze un cod de ieșire util. Comanda wp plugin
are două dintre aceste subcomenzi, is-installed
și is-active
, care ne permit să verificăm dacă un anumit plugin este instalat și activat:
# Verificați dacă hello-dolly este instalat (este) pluginul wp este instalat hello-dolly eco $? 0 # Scoateți hello-dolly și verificați din nou wp plugin șterge hello-dolly pluginul wp este instalat hello-dolly eco $? 1 # Verificați dacă woocommerce este activat pluginul wp este activ woocommerce eco $? 0 # Dezactivați woocommerce pluginul wp dezactivează woocommerce pluginul wp este activ woocommerce eco $? 1
Folosind comenzile de mai sus, este posibil să scrieți scripturi Bash care fac lucruri diferite, în funcție de dacă un anumit plugin este instalat/activat sau nu.
Ultima subcomandă despre care bănuiesc că este în principal pentru scopuri de scriptare este path
. Această comandă returnează pur și simplu calea către fișierul PHP principal al unui plugin și, în consecință, și către folderul pluginului. Putem combina acest lucru cu alte trucuri Bash, de exemplu ca acesta:
# Afișați toate fișierele din folderul plugin woocommerce ls -al $(dirname $(wp plugin cale woocommerce))
Acest lucru nu este foarte util în munca de zi cu zi în linia de comandă, dar este cu siguranță util atunci când scrieți scripturi și trebuie să obțineți calea pentru un plugin.
Concluzie
După cum puteți vedea, gestionarea pluginurilor WordPress prin linia de comandă vă crește viteza și face multe sarcini comune mult mai simple. Am acoperit cele mai frecvente sarcini atunci când vine vorba de gestionarea pluginurilor, dar vă încurajez să explorați mai departe pe cont propriu. Veți descoperi în curând că puterea WP-CLI se extinde cu mult dincolo de pluginuri, permițându-vă să faceți practic orice ați putea face în administratorul WordPress, dar mult mai rapid.
Aveți exemple grozave despre cum folosiți comanda wp plugin
? Vă rog să-mi spuneți în comentarii.