Installazione, aggiornamento e gestione dei plugin di WordPress con WP-CLI

Pubblicato: 2022-07-26

WP-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.