WP-CLI v2-Gestione di WordPress dal Terminale

Per la maggior parte della sua vita, WordPress è stato costruito utilizzando una semplice base di codice con un pizzico di PHP orientato agli oggetti che è il sistema più astratto. Negli ultimi anni, tuttavia, questo sta cambiando in meglio. Dal test delle unità agli strumenti di pre-elaborazione CSS e riga di comando, stanno spuntando sempre più risorse per gli sviluppatori. In questo articolo, vedremo uno dei miei preferiti: WP-CLI.

Che cosa è WP-CLI?

WP-CLI è uno strumento a riga di comando per gli sviluppatori per gestire attività comuni (e non così comuni) di un’installazione di WordPress. Può aggiungere / rimuovere utenti, post, categorie, inserire dati di test, cercare e sostituire nel database, reimpostare le password, aiutare a risolvere i problemi di prestazioni e molto altro!

Supporto

WP-CLI è stato un progetto open source per oltre un decennio, gestito principalmente da Daniel Bachhuber dal 2003. L’obiettivo principale di WP-CLI è quello di aiutare ad accelerare i flussi di lavoro degli sviluppatori di WordPress.

Nel corso degli anni il progetto è emerso in molto di più! Ora sta diventando anche un requisito per altri progetti open source come Trellis e Bedrock. A partire da gennaio 2017, WP-CLI si è ufficialmente trasferito a WordPress.org ed è anche ora co-mantenuto da Alain Schlesser.

WP-CLI v2 è stato rilasciato l ‘ 8 agosto 2018, quindi esploreremo anche alcune delle modifiche e delle nuove funzionalità. Se sei un client Kinsta, WP-CLI v2. 0.1 è installato di default su tutti i nostri server, semplicemente SSH nel server per iniziare. L’accesso SSH è incluso in tutti i nostri piani di hosting (Non è possibile connettersi tramite SSH? Correggere l’errore SSH “Connessione rifiutata”).

    Guida WP-CLI

  • Nozioni di base Di WP-CLI
  • WP-CLI Comandi in Generale
  • Esempi
  • Usando WP-CLI in Remoto
  • Utilizzando Script Bash

Guida WP-CLI

Il minimo PHP requisito WP-CLI v2.0.0 è stato urtato fino a PHP 5.4. Anche se questo è un buon passo avanti, si consiglia di eseguire almeno una versione supportata di PHP, che significa 5.6 o superiore. PHP 7.2 è l’impostazione predefinita su tutte le installazioni Kinsta, sia per motivi di sicurezza che di prestazioni. Abbiamo anche PHP 7.3 e 7.4 disponibili.

Per iniziare è necessario installare WP-CLI – un processo molto semplice. I passaggi per Linux e OSX sono i seguenti, emettere questi tre comandi uno dopo l’altro:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.pharchmod +x wp-cli.pharsudo mv wp-cli.phar /usr/local/bin/wp

Se qualcosa va storto o si è su Windows fare riferimento alle istruzioni di base o ai metodi di installazione alternativi.

Una volta fatto dovresti essere in grado di emettere il comando wp --info e ottenere una risposta significativa.

Il processo è lo stesso se si desidera installare WP-CLI sul server. Ricorda, per i client Kinsta WP-CLI è già installato. Non sei sicuro di quale versione stai attualmente eseguendo? Puoi sempre emettere il comando wp cli version per scoprirlo.

Le basi di WP-CLI

Avere accesso a WordPress dalla riga di comando è potente in sé e per sé, ma può darti ancora più controllo e guadagni di velocità quando usi gli script bash.

Gli script Bash consentono di eseguire una sequenza di comandi con un singolo comando. È possibile digitare bash install-and-setup.sh e di ottenere il seguente risultato:

  • Scarica WordPress
  • Creare e popolare wp-config.php
  • Creare il database
  • Installare WordPress
  • Installare e attivare qualsiasi plugin di cui hai bisogno
  • Installare e attivare un tema
  • Scaricare e aggiungere il contenuto di prova

Questi sarebbero i passi che ho di creare un nuovo ambiente di prova per un progetto. Normalmente mi ci vorrebbero almeno 5-10 minuti, specialmente se ci sono alcuni plugin coinvolti. L’emissione di un singolo comando è ovviamente molto più veloce.

Comandi WP-CLI in generale

Se sei abituato a lavorare nel terminale non c’è niente di speciale in WP-CLI per te. I comandi iniziano sempre con wp seguito da un comando e un sottocomando, seguito da parametri obbligatori e opzionali, qualcosa del genere:

wp command subcommand requiredparam --optionalparam --optionalparam2=value

Installiamo un tema per vedere come funziona con un comando reale:

wp theme install twentyseventeen --activate

Questo installerà e attiverà il tema Twenty Seventeen sulla tua installazione di WordPress.

Si noti che WP-CLI funzionerà con l’installazione di WordPress che si trova attualmente nel terminale. Se si passa directory per andare a un’altra installazione di WordPress, funzionerà con quella.

Esempi utili

Questo era WP-CLI in poche parole! Mentre ci sono alcune cose avanzate che puoi fare, che arriveremo in un momento, sai già abbastanza per iniziare e fare tutto il necessario. Consiglio di dare un’occhiata all’elenco dei comandi, provarne alcuni. Daremo un’occhiata ad alcune cose utili qui, quindi passiamo all’utilizzo di WP-CLI su SSH e all’utilizzo di script bash.

Installazione di WordPress

Uso molto WP-CLI per configurare ambienti di test, il cui primo passo è un’installazione vanilla. Ecco un elenco di comandi che eseguo:

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

Nota quanto è bello! La versione più recente di WordPress viene scaricata utilizzando il primo comando. Il secondo comando imposta il file di configurazione con l’accesso al database e alcuni PHP aggiuntivi alla fine. Le costanti aggiuntive assicurano che abbiamo le nostre opzioni di debug per il test. Abbiamo una guida dettagliata qui se vuoi saperne di più sul debug di WordPress.

Il terzo comando crea il database (WP-CLI utilizza le informazioni di accesso al database dal file di configurazione) e, infine, installiamo WordPress utilizzando un paio di parametri.

Reinstalla WordPress Core

Puoi anche reinstallare WordPress core usando WP-CLI. Il seguente comando scarica WordPress core senza i temi e i plugin predefiniti.

wp core download --skip-content --force

Cambia URL WordPress

Ci sono molte ragioni per cui potresti aver bisogno o voler cambiare il tuo URL WordPress. Forse stai cambiando domini, passando a un sottodominio, aggiornando da www a non www, spostando i file o persino migrando da HTTP a HTTPS. Qualunque sia il caso, puoi usare facilmente il comando wp option update per questo. Ecco un esempio qui sotto:

wp option update home 'http://example.com'wp option update siteurl 'http://example.com'

Elenco dei plugin attuali con Dettagli

Per ottenere un elenco dei plugin attuali installati su un sito è sufficiente utilizzare il seguente comando. In questo esempio, si può vedere che abbiamo lo Schema e Yoast SEO plugin installato. Restituirà anche lo stato (attivo / disattivato), se è disponibile un aggiornamento, e la versione corrente.

wp plugin list
WP-CLI plugin list

WP-CLI plugin list

Installazione di più plugin

Per installare più plugin si può semplicemente mucchio su parametri. Ecco un esempio che scarica e attiva 3 plugin:

wp plugin install advanced-custom-fields jetpack ninja-forms --activate

Si noti che i nomi dei plugin provengono dal loro nome nel repository. Il modo più semplice per capirlo è visitare la loro pagina e guardare l’URL o usare wp plugin search searchterm che ti darà una lista nel terminale.

URL del repository dei plugin WordPress

URL del repository dei plugin WordPress

Puoi anche installare versioni precedenti dei plugin WordPress se necessario con l’attributo --version.

wp plugin install wordpress-seo --version=4.8 --activate

Ancora più fresco, è possibile installare plugin da file remoti, non solo il repository che è utile se si sta sviluppando un plugin, o utilizzando un plugin premium. Il seguente comando installa due plugin dal repository e uno da un server Amazon S3.

wp plugin install advanced-custom-fields jetpack https://d1qas1txbec8n.cloudfront.net/wp-content/uploads/2015/06/23073607/myplugin.zip --activate

Disattivare più plugin

Per disattivare un singolo plugin è possibile eseguire il seguente comando.

wp plugin deactivate wordpress-seo

Per disattivare tutti i plugin in una sola volta eseguire il seguente comando.

wp plugin deactivate --all
WP-CLI disattiva tutti i plugin

WP-CLI disattiva tutti i plugin

Questo comando sopra può essere utile se stai risolvendo problemi di compatibilità e devi semplicemente disattivare tutti i plugin in un colpo solo. Puoi quindi tornare indietro e abilitarli uno per uno, testando mentre vai.

Aggiorna plugin

Puoi anche aggiornare manualmente i plugin di WordPress. Esempio qui sotto:

wp plugin update wordpress-seo
wp-cli aggiorna manualmente wordpress plugin

WP-CLI aggiorna manualmente WordPress plugin

Database Search And Replace

Uno dei motivi principali per cui è difficile migrare un sito semplicemente copiando-incollando un database è che il database contiene array serializzati. Se è necessario sostituire tutte le istanze di http://testsite.com con http://livewebsite.com gli array serializzati non avranno senso perché il conteggio delle stringhe non corrisponderà.

Iscriviti alla Newsletter

Siamo cresciuti il nostro traffico 1,187% con WordPress. Vi mostreremo come.

Unisciti a più di 20.000 persone che ricevono la nostra newsletter settimanale con i suggerimenti di insider WordPress!

Iscriviti ora

Il comando search-replace diserializza prima gli array, quindi esegue la ricerca e la sostituzione, quindi serializza nuovamente gli array. Puoi farlo con un semplice comando:

wp search-replace oldstring newstring

Parametri aggiuntivi ti consentono di fare molto di più, inclusa l’anteprima di ciò che verrà sostituito utilizzando --dry-run.

Importa ed Esporta

Esistono due modi per esportare contenuti con WP-CLI. È possibile creare un file XML, proprio come lo strumento di esportazione WordPress fa, oppure è possibile esportare/importare il database raw. Trovo più tardi molto più utile nella mia routine quotidiana, è utile quando si sincronizzano i siti.

wp db export è tutto ciò che devi fare per creare un file SQL e wp db import file.sql è tutto ciò che devi importare. Funziona come un fascino, basta fare attenzione a non sovrascrivere tutto ciò di cui hai bisogno, l’importazione fondamentalmente scaricherà il database esistente e utilizzerà invece il file SQL fornito.

Gestisci ruoli e funzionalità

WP-CLI può gestire i ruoli per te abbastanza facilmente usando il comando wp role. Questo è piuttosto interessante se vuoi testare come funziona il tuo plugin con ruoli personalizzati, ma in realtà non crei i ruoli all’interno del tuo plugin.

wp role create organizer Organizerwp cap list 'editor' | xargs wp cap add 'organizer'wp cap add 'organizer' 'manage-events'

I comandi precedenti creeranno un nuovo ruolo (Organizzatore), aggiungeranno tutte le funzionalità dal ruolo dell’editor e quindi aggiungeranno una nuova funzionalità: gestisci-eventi.

Generare dati di test

Amo tutti i tipi di funzioni faker-like – quelli che aggiungono contenuti fittizi al tuo sito che è possibile utilizzare per i test. WP-CLI ha un paio di questi integrati, qui ci sono alcune funzioni che genereranno utenti, termini e post.

wp user generate --count=5 --role=editorwp user generate --count=10 --role=authorwp term generate --count=12wp post generate --count=50

Gestisci eventi WP-Cron

Puoi gestire eventi WP-Cron e o un lavoro Cron WordPress in WP-CLI. Ad esempio, il seguente comando ti darà il tuo attuale elenco di eventi cron.

wp cron event list
wp-cron event list

wp-cron event list

Elimina transienti

Puoi anche eliminare e cancellare uno o tutti i transienti usando il seguente comando.

wp transient delete --all

Se stai eseguendo multisito, avrai bisogno di un comando un po ‘ più complicato. Per impostazione predefinita, il comando controlla solo la tabella wp_options. Non controlla wp_1_options, wp_2_options, ecc.

Alle prese con i tempi di inattività e problemi di WordPress? Kinsta è la soluzione di hosting progettata per farti risparmiare tempo! Scopri le nostre caratteristiche

wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all

Clean up wp_options Table

La tabella wp_options può essere un colpevole comune per i tempi di query lenti sul tuo sito a causa di dati caricati automaticamente lasciati da plugin e temi di terze parti. Dai un’occhiata a questo fantastico articolo da WP Bullet su come utilizzare WP-CLI per ripulire la tua tabella wp_options.

Elimina le revisioni di WordPress

Su siti di grandi dimensioni, le revisioni di WordPress possono sommarsi molto rapidamente a migliaia di righe nel database che non sono necessarie. È possibile eliminare le revisioni post con WP-CLI. Ecco un esempio del comando:

$ wp post delete $(wp post list --post_type='revision' --format=ids)
wp-cli delete wordpress revisions

WP-CLI delete WordPress revisions

Control Maintenance Mode

A partire da WP-CLI v2.2.0, è ora possibile controllare la modalità di manutenzione sul tuo sito WordPress. Esempio:

wp maintenance-mode activatewp maintenance-mode deactivatewp maintenance-mode status

Indicizzazione dei dati con Elasticsearch

Elasticsearch è un motore di ricerca full-text open source. Viene utilizzato per indicizzare i dati e cercare i dati in modo incredibilmente rapido. Offriamo questo come un add-on per i clienti Kinsta. È possibile utilizzare i comandi ElasticPress WP-CLI per eseguire l’indicizzazione su SSH. Esempio:

wp elasticpress index

Lavorare con siti multilingue

WP-CLI v2.0.0 include una nuova famiglia di comandi wp i18n per quelli di voi che lavorano con siti multilingue. Ad esempio, puoi creare un file POT per un plugin o un tema WordPress.

wp i18n make-pot <source> ] 

Vedere la documentazione i18n-command.

Utilizzo di WP – CLI con WooCommerce

Lavorare con i siti di e-commerce? 🛒 Ti consigliamo di controllare l’incredibile guida allo sviluppo di WooCommerce WP-CLI di Robot Ninja per comandi rapidi e facili da usare. Generazione di un elenco di clienti, ordini, e anche la creazione di prodotti sfusi sono tutti possibili con WP-CLI.

Usare WP-CLI in remoto

Una delle cose migliori che puoi fare con WP-CLI è gestire le tue installazioni WordPress remote. Questo è veramente il sogno di un gestore di siti web che si avvera.

Per eseguire senza problemi i comandi WP-CLI su un server remoto tramite SSH, in precedenza era necessario il comando addon wp-cli-ssh. Ma a partire dalla v0. 24. 0, questo è ora parte di WP-CLI stesso! Important

Importante: È necessario che WP-CLI sia installato sul computer da cui si sta eseguendo il comando che sul server.

Configurazione dei server remoti

È possibile configurare i server a livello globale o locale. Per configurarli globalmente utilizzare il file config.yml. È inoltre possibile utilizzare i file wp-cli.yml o wp-cli.local.yml nella directory di lavoro corrente.

La configurazione di server funziona qualcosa come questo, incolla questo in uno di questi file:

ssh: staging: cmd: ssh %pseudotty% %cmd% url: http://myseite.com path: /www/path/to/site/root

una Volta fatto tutto questo è possibile digitare il seguente comando per aggiornare WordPress sul tuo sito remoto:

wp ssh core update --host=staging

Se possiedi o gestisci un sacco di siti, penso che si può vedere che questo è incredibile! Lo script chiederà una password, ma se si utilizzano le chiavi RSA per accedere è possibile rinunciare anche a questo. Date un’occhiata a questo articolo per impostare che.

Utilizzando gli script Bash

Gli script Bash consentono di risparmiare ancora più tempo automatizzando le attività. Ricordate come avevamo bisogno di digitare un sacco di comandi per installare WordPress? Puoi farlo con un singolo script bash. All’interno di una directory creare un file install.sh. Incolla lo stesso codice che avevamo prima dentro e salvalo.

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

Tutto quello che devi fare ora è digitare bash install.sh e tutto sarà fatto per te, senza l’intervento dell’utente. Se gestisci molti siti puoi configurare tutti i tuoi ambienti e creare uno script bash come questo:

wp ssh core update --host=clientAwp ssh core update --host=clientBwp ssh core update --host=clientCwp ssh core update --host=clientD

Quando esce una nuova versione di WordPress, questo potrebbe farti risparmiare un sacco di tempo! Dal momento che si può fare tutto quello che vuoi con WP-CLI è anche possibile aggiornare temi e plugin regolarmente su un certo numero di siti client in una sola volta.

Sommario

WP-CLI è davvero il sogno dello sviluppatore e del gestore del sito web che si avvera. Come sviluppatori possiamo creare siti di test in un batter d’occhio, aggiungere contenuti di test e fare tutti i tipi di importazione/esportazione magia. I gestori del sito possono gestire gli aggiornamenti del sito e altre attività per più siti con singoli comandi. Assicurati di controllare le note di rilascio WP-CLI v2!

Se non hai già provato WP-CLI, ti esorto a provarlo. Ci sono anche un sacco di comandi della comunità come WP-CLI-SSH che aggiungono ancora più grandi caratteristiche! Se stai riscontrando problemi, assicurati di controllare la documentazione dei problemi comuni di WP-CLI.

Non dimenticare che l’architettura basata su Google Cloud di Kinsta supporta WP-CLI immediatamente. Se vuoi provare la più moderna architettura di hosting WordPress e avere accesso a ottimi strumenti come WP-CLI, prova il nostro hosting WordPress gestito.

Se ti è piaciuto questo articolo, allora amerai la piattaforma di hosting WordPress di Kinsta. Turbocharge il tuo sito web e ottenere il supporto 24/7 dal nostro team WordPress veterano. La nostra infrastruttura basata su Google Cloud si concentra su scalabilità automatica, prestazioni e sicurezza. Lasciate che vi mostriamo la differenza Kinsta! Scopri i nostri piani



+