Installazione, aggiornamento e gestione dei plugin di WordPress con WP-CLI
Pubblicato: 2022-07-26WP-CLI ti consente di fare praticamente tutto ciò che puoi fare nell'amministratore di WordPress, ma dalla riga di comando. Ciò consente di risparmiare un sacco di tempo e fornisce un flusso di lavoro più pulito. Puoi utilizzare WP-CLI per gestire il core di WordPress, eseguire aggiornamenti dei temi, gestire installazioni multisito e molto altro. In questo articolo ci concentreremo su uno dei casi d'uso più comuni, la gestione dei plugin di WordPress.
I comandi WP-CLI sono tutti strutturati allo stesso modo. C'è sempre un comando padre (come wp plugin
) e un sottocomando (come install
), seguito da parametri e opzioni. In questo articolo ci concentreremo sul wp plugin
e sui suoi sottocomandi, ma puoi vedere una spiegazione più dettagliata nella nostra guida alla struttura dei comandi WP-CLI.
Quell'articolo utilizzava il comando wp plugin
come esempio, evidenziando come installare e attivare i plugin usando WP-CLI. In questo articolo approfondiremo come gestire i nostri plugin utilizzando l'interfaccia della riga di comando di WordPress.
Installazione e attivazione dei plugin
Attualmente ci sono 16 sottocomandi ufficiali per il comando genitore del wp plugin
. In questa sezione tratteremo i sottocomandi per l'installazione e l'attivazione. Vedremo anche come installare e attivare i plugin con un solo comando. Vedremo anche come installare plug-in da fonti diverse dalla directory dei plug-in di WordPress.
Immettere l' wp plugin install
seguito dallo slug ufficiale del plug-in per installare l'ultima versione:
installazione del plugin wp ciao-dolly Installazione di Hello Dolly (1.7.2) Download del pacchetto di installazione da https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip... Utilizzo del file memorizzato nella cache '/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip'... Non è stato possibile verificare l'autenticità di hello-dolly.1.7.2.zip poiché non è stata trovata alcuna firma. Disimballaggio del pacco... Installazione del plugin... Plugin installato correttamente. Successo: installato 1 plugin su 1.
Successivamente, attiviamo il plugin usando il comando wp plugin activate
:
plugin wp attiva ciao-dolly Plugin 'ciao-dolly' attivato. Successo: attivato 1 plugin su 1.
Alla ricerca di un plug-in Slug
Nota che lo slug è spesso diverso dal nome del plugin. Lo slug è visibile nell'URL del plug-in nella directory dei plug-in di WordPress, ma puoi accelerare il flusso di lavoro attenendosi alla riga di comando e utilizzando il sottocomando di search
, seguito da due parametri e dai relativi valori: --per-page=1
e --fields=name,slug
.
Il parametro opzionale --per-page
dice a WP-CLI quanti risultati mostrarci, in questo caso solo uno. Di default visualizzerà 10 risultati se non gli dai questo parametro. Gli ho dato un valore di 1
qui perché voglio solo vedere il risultato più rilevante.
Il parametro --fields
dice a WP-CLI di richiedere campi specifici dall'API, in questo caso il nome del plugin e lo slug. C'è un'ampia gamma di valori che puoi utilizzare qui, inclusa version
per vedere il numero di versione corrente e rating
per vedere le valutazioni del plug-in sia come percentuale che come numero totale di valutazioni. Puoi invece usare --field=<field>
se vuoi visualizzare solo il risultato di un singolo campo. È necessario utilizzare il parametro --fields
o --field
con il comando di wp plugin search
.
plug-in wp cerca "wp offload media" --per-page=1 --fields=name, slug Successo: Visualizzazione di 1 di 66 plugin. +------------------------------------------------ -------------------------------+------------------ --------+ | nome | lumaca | +------------------------------------------------ -------------------------------+------------------ --------+ | WP Offload Media Lite per Amazon S3, DigitalOcean Spaces e Google Cloud Sto | amazon-s3-e-cloudfront | | rabbia | | +------------------------------------------------ -------------------------------+------------------ --------+
Poiché la risposta a questo comando è un elenco, questa è una buona opportunità per mostrare cosa può fare il parametro --format
. Chiediamo a WP-CLI di fornirci quell'elenco in formato JSON, quindi inviarlo tramite l'utilità jq per una formattazione più carina. L'utilità jq è un leggero processore JSON da riga di comando che puoi installare al link sopra o provare online. Assicurati di omettere | jq
| jq
dal comando seguente se non lo hai installato.
Quando chiediamo l'output in formato JSON, WP-CLI omette il messaggio di stato in modo da non ottenere JSON rotto:
$ plugin wp cerca "wp offload media" --per-page=1 --fields=name,slug --format=json | jq [ { "name": "WP Offload Media Lite per Amazon S3, DigitalOcean Spaces e Google Cloud Storage", "slug": "amazon-s3-e-cloudfront" } ]
Per attivare il plugin una volta installato, usa wp plugin activate
seguito dallo slug ufficiale del plugin.
Installazione e attivazione di un plug-in contemporaneamente
Quando si tratta di gestire i plug-in con WP-CLI, uno dei grandi vantaggi è che puoi installare e attivare un plug-in con un solo comando. Sebbene l' activate
possa essere utilizzata come sottocomando con wp plugin
, può anche essere usata come parametro con il comando wp plugin install
:
# Installazione e attivazione del plugin allo stesso tempo installazione del plugin wp --activate hello-dolly
Installazione di una versione specifica del plugin
Non è raro che tu voglia installare una versione specifica di un plugin a scopo di test. Finché la versione che desideri è ancora disponibile nella directory dei plug-in di WordPress, puoi selezionare qualsiasi versione che ritieni adatta:
# Installazione di una versione specifica del plugin installazione del plugin wp woocommerce --version=5.5.3
Installazione di plugin da altre posizioni
La directory dei plugin di WordPress non è l'unico posto in cui possiamo ottenere plugin. Possiamo anche installare un plugin direttamente dal file system. La maggior parte delle volte quando acquisti un plug-in premium, ricevi la consegna iniziale sotto forma di file zip. WP-CLI installerà felicemente quel file zip direttamente, senza bisogno di estrarre prima il pacchetto:
# Installazione di un plug-in dalla cartella Download $ installazione del plug-in wp ~/Downloads/advanced-custom-fields-pro.zip
Questo funziona anche se il plugin che vuoi installare è disponibile su un URL, magari accessibile solo fornendo le credenziali tramite parametri di richiesta o su un server con certificato autofirmato:
# Ottieni il plugin da un URL installazione del plugin wp http://www.hellfish.media/my-plugin.zip # ...o anche un file privato da un bucket Amazon: installazione del plug-in wp https://s3.amazonaws.com/bucketname/my-plugin.zip?X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123 # Dal nostro server interno con un certificato autofirmato: installazione del plug-in wp https://intranet.hellfish.media/my-plugin.zip --insecure
Aggiornamento dei plugin con WP-CLI
Una volta installato un plugin, è importante mantenerlo aggiornato per motivi di sicurezza Per scoprire se ci sono plugin da aggiornare, possiamo eseguire il comando wp plugin list
:
elenco dei plugin wp +-----------------+-----------+------ -----+---------+ | nome | stato | aggiornamento | versione | +-----------------+-----------+------ -----+---------+ | amazon-s3-e-cloudfront | attivo | disponibile | 2.6.1 | | ciao-dolly | attivo | disponibile | 1.7.1 | | wunderdevmu | da usare | nessuno | 1.0 | +-----------------+-----------+------ -----+---------+
In questo caso, sia i plugin Hello Dolly che WP Offload Media necessitano di aggiornamenti. Naturalmente esiste un sottocomando separato per quello chiamato update
.
Possiamo aggiornarli uno per uno, o essere un po' pigri e aggiornare semplicemente tutto ciò che deve essere aggiornato in una volta sola usando l' --all
. Il comportamento predefinito del comando update prevede l'aggiornamento completo fino all'ultima versione disponibile, che include gli aggiornamenti delle versioni principali. Ma usando l' --minor
possiamo essere un po' più attenti e aggiornare solo per versioni minori. Ad esempio, possiamo dirgli di aggiornare da 1.2.3 a 1.3.0, ma non a 2.0.0. Possiamo anche essere estremamente attenti e usare l' --patch
per limitare gli aggiornamenti alle sole patch, cioè da 1.2.3 a 1.2.5 ma mai a 1.3.0.
# Aggiorna attentamente i plugin uno per uno aggiornamento del plugin wp wp-offload-media aggiornamento del plugin wp ciao-dolly # L'approccio da cowboy aggiornamento del plugin wp --all # Un po' più sensato aggiornamento del plugin wp --all --minor # Molto difensivo aggiornamento del plugin wp --all --patch
Nota: le --minor
e --patch
presuppongono che il plugin stia utilizzando il controllo delle versioni semantico. Lungi da tutti i plug-in lo fanno, quindi dovrai cercarlo per i plug-in che stai utilizzando in modo da non avere spiacevoli sorprese. L' --dry-run
ti consente di controllare e assicurarti che i tuoi comandi siano corretti:
# Testare l'aggiornamento di un singolo plugin solo alle patch aggiornamento del plugin wp hello-dolly --patch --dry-run
Il parametro --exclude=<plugin name>
viene utilizzato per indicare quali plug-in devono essere esclusi dall'aggiornamento. Includere i nomi dei plug-in come un elenco separato da virgole e WP-CLI aggiornerà tutti gli altri plug-in lasciandoli soli:
aggiornamento del plugin wp --all --exclude=hello-dolly Abilitazione modalità Manutenzione... Download dell'aggiornamento da https://deliciousbrains.com/my-account/download/7512/?version=2.6.2... Decompressione dell'aggiornamento... Installazione dell'ultima versione... Rimozione della vecchia versione del plugin... Plugin aggiornato correttamente. Disattivazione della modalità di manutenzione... +------------+-------------+-------- -----+---------+ | nome | vecchia_versione | nuova_versione | stato | +------------+-------------+-------- -----+---------+ | amazon-s3-e-cloudfront | 2.6.1 | 2.6.2 | Aggiornato | +------------+-------------+-------- -----+---------+
Forzare la reinstallazione del plugin
La maggior parte dei plug-in premium viene fornita con il proprio controllo degli aggiornamenti integrato che funziona perfettamente anche con WP-CLI. Nella mia esperienza, qualsiasi plug-in che può essere aggiornato con un clic tramite le pagine di amministrazione di WordPress può anche essere aggiornato utilizzando WP-CLI. Ma in alcuni casi gli aggiornamenti vengono forniti tramite una nuova versione del file zip che è necessario inserire nella posizione corretta sul server. Puoi applicare questo tipo di aggiornamenti forzando una reinstallazione del plugin usando l' --force
:
# Forza la reinstallazione di un plugin installazione del plugin wp ~/Downloads/my-custom-plugin-v2.zip --force
Abilitazione degli aggiornamenti automatici
Dalla versione 5.5, WordPress può aggiornare automaticamente i plugin. Gli aggiornamenti automatici devono essere abilitati per ogni singolo plugin. WP-CLI non offre alcuna gestione in blocco per gli aggiornamenti automatici. Deve essere eseguito individualmente per plug auto-updates
. Puoi vedere come funziona con i seguenti comandi:
# Controlla se gli aggiornamenti automatici sono abilitati per un plugin Il plugin wp aggiorna automaticamente lo stato ciao-dolly # Abilita aggiornamenti automatici gli aggiornamenti automatici del plugin wp abilitano hello-dolly # Disabilitalo di nuovo gli aggiornamenti automatici del plugin wp disabilitano hello-dolly
Disattivazione e rimozione dei plugin
L'installazione, l'attivazione e l'aggiornamento dei plug-in sono tra le attività più comuni, ma ci sono altri lavori di gestione dei plug-in che WP-CLI può gestire per noi.
Se hai mai provato a capire cosa sta causando un problema sul tuo sito Web WordPress, probabilmente ti è stato consigliato di disattivare tutti i plug-in come uno dei primi passi. È possibile farlo con la gestione di massa in un browser web, ma mi fa sempre sentire nervoso. Preferisco farlo tramite la riga di comando usando l' --all
.
# Disattiva tutti i plugin contemporaneamente plugin wp disattiva --all # E riattivarli di nuovo plugin wp attiva --all
Anche la rimozione completa di un plug-in è facile con WP-CLI. Una differenza tra farlo tramite la riga di comando e il browser è che WP-CLI ti consentirà di rimuovere un plug-in senza prima eseguire gli hook di disattivazione. Se hai mai installato un plug-in che si arresta in modo anomalo su WordPress durante la disattivazione, sai perché questo può essere così utile:
# Disattiva e disinstalla plugin wp disattiva hello-dolly --uninstall # Rimuovere un plugin senza dargli la possibilità di disattivarlo plugin wp elimina ciao-dolly
C'è anche il sottocomando toggle
relativo all'attivazione e alla disattivazione dei plugin. Invertirà o alternerà lo stato di attivazione in modo che cambi nello stato opposto allo stato corrente. Puoi aggiungere --network
per attivare o disattivare il plug-in per un'intera rete multisito.
Checksum dei plugin
WP-CLI ha la capacità di confrontare i checksum dei plug-in installati con i checksum per lo stesso plug-in e versione nella directory dei plug-in di WordPress. Questo è un modo molto efficiente per determinare se i file del plug-in nell'installazione di WordPress sono stati manipolati. Se lo hanno, è una forte indicazione che sei stato violato.
I checksum sono speciali algoritmi informatici che possono prendere un input di qualsiasi tipo e dimensione e convertirlo in una breve stringa. Questa stringa è in genere lunga circa 20-40 caratteri, il che la rende adatta per l'archiviazione in un database. Questa stringa risultante è chiamata hash, firma o, per ragioni storiche, checksum.
Ciò che rende unici questi algoritmi è che se anche un singolo carattere cambia nell'input, l'output sarà completamente diverso. Inserisci tutti i file di un plug-in nell'algoritmo di checksum uno per uno e ti ritroverai con una piccola firma, o checksum, che rappresenta l'intero plug-in.
Ogni volta che viene pubblicata una nuova versione di un plug-in nella Directory dei plug-in di WordPress, il checksum viene calcolato e salvato per quella specifica versione. Alcuni mesi dopo, quando vuoi ricontrollare di non essere stato violato, puoi chiedere a WP-CLI di calcolare il checksum per i tuoi plugin e confrontarli con i checksum originali che WordPress conserva. Se ci sono file aggiunti, modificati o mancanti da parte tua, il checksum per il plugin sarà diverso da quello originale e WP-CLI farà rumore al riguardo.
Il sottocomando che gestisce questa magia di controllo dell'hash è chiamato verify-checksums
ed è essenzialmente lo stesso che chiedere "i miei plug-in sono invariati da quando li ho presi dalla directory dei plug-in di WordPress?"
# Verifica la presenza di un singolo plug-in plugin wp verifica-checksum ciao-dolly Successo: verificato 1 di 1 plugin # Controlla tutti i plugin che provengono dal repository plugin wp checksums --all
Funziona solo per i plugin che sono stati installati dalla directory ufficiale dei plugin di WordPress, quindi i tuoi plugin premium non verranno controllati da questo comando. Il sottocomando verify-checksums
esiste anche per wp core
ma non può essere utilizzato per verificare i temi di WordPress.
Comandi per gli script
Finora, i comandi che abbiamo trattato sono utili per chiunque abbia bisogno di gestire i plugin di WordPress. L'ultima serie di sottocomandi del wp plugin
che tratterò sono principalmente di interesse per gli sviluppatori di WordPress, poiché sono principalmente destinati all'uso negli script Bash.
Per prima cosa dobbiamo parlare un po' dei codici di uscita di Unix. In un sistema Unix, tutti i programmi che escono dall'esecuzione restituiscono un codice di uscita. L'interpretazione standard è che il codice di uscita 0
significa che il programma è terminato correttamente, mentre un codice di uscita diverso da zero indica che si è verificato un errore.
I codici di errore sono spesso usati negli script di shell da usare nelle istruzioni if/else
e in altre forme di ramificazione. Non vediamo il codice di uscita quando eseguiamo normalmente un comando dal prompt dei comandi, ma possiamo sempre trovarlo usando $?
:
# Esegui qualcosa che funziona e ottieni il codice di uscita Data eco $? 0 # Esegui qualcosa che non riesce ls /cartella non esistente ls: /idongfdg: nessun file o directory di questo tipo eco $? 1
In WP-CLI, abbiamo una serie di comandi che hanno principalmente lo scopo di controllare qualcosa e restituire un utile codice di uscita. Il comando wp plugin
ha due di questi sottocomandi, is-installed
e is-active
, che ci consentono di verificare se un determinato plugin è installato e attivato:
# Controlla se hello-dolly è installato (lo è) il plugin wp è installato ciao-dolly eco $? 0 # Rimuovere hello-dolly e controllare di nuovo plugin wp elimina ciao-dolly il plugin wp è installato ciao-dolly eco $? 1 # Verifica se woocommerce è attivato il plugin wp è attivo woocommerce eco $? 0 # Disattiva woocommerce plugin wp disattiva woocommerce il plugin wp è attivo woocommerce eco $? 1
Usando i comandi sopra, è possibile scrivere script Bash che fanno cose diverse a seconda che un determinato plugin sia installato/attivato o meno.
L'ultimo sottocomando che sospetto sia principalmente per scopi di scripting è path
. Questo comando restituisce semplicemente il percorso al file PHP principale di un plug-in e, di conseguenza, anche alla cartella del plug-in. Possiamo combinarlo con altri trucchi di Bash, ad esempio in questo modo:
# Mostra tutti i file nella cartella del plugin woocommerce ls -al $(dirname $(percorso plugin wp woocommerce))
Questo non è molto utile nel lavoro quotidiano della riga di comando, ma è sicuramente utile quando si scrivono script ed è necessario ottenere il percorso per un plug-in.
Conclusione
Come puoi vedere, la gestione dei plugin di WordPress tramite la riga di comando aumenta la tua velocità e semplifica molte attività comuni. Ho coperto le attività più comuni quando si tratta di gestire i tuoi plug-in, ma ti incoraggio a esplorare ulteriormente da solo. Scoprirai presto che la potenza di WP-CLI si estende ben oltre i plug-in, consentendoti di fare praticamente tutto ciò che potresti fare nell'amministratore di WordPress, ma molto più velocemente.
Hai qualche ottimo esempio di come stai usando il comando wp plugin
? Per favore fatemelo sapere nei commenti.