Tutorial WP-CLI
Questo tutorial riguarda i seguenti argomenti:
WP-CLI è un’interfaccia a riga di comando che consente agli utenti di gestire i propri siti web WordPress da un prompt dei comandi. È possibile eseguire aggiornamenti, creare backup, pubblicare nuovi articoli, ed utilizzare la maggior parte delle funzionalità in pochi comandi.
Questo tutorial mostra come utilizzare la riga di comando di WordPress per completare operazioni amministrative come aggiornamenti, creazione di backup del database, installazione e rimozione dei temi, pubblicazione e cancellazione di post, modifica dell’URL del sito, e visualizzare un aiuto sul comando scelto. WP-CLI richiede un accesso SSH.
Ottieni la lista dei comandi WP-CLI disponibili
Per ottenere la lista di tutti i comandi, digita “wp help” o anche solo “wp”. Vedrai la seguente lista:
akismet Filter spam comments.
cache Manage the object cache.
cap Manage user capabilities.
checksum Verify WordPress core checksums.
cli Review current WP-CLI info, check for updates, or see defined aliases.
comment Manage comments.
config Manage the wp-config.php file
core Download, install, update and manage a WordPress install.
cron Manage WP-Cron events and schedules.
db Perform basic database operations using credentials stored in wp-config.php
eval Execute arbitrary PHP code.
eval-file Load and execute a PHP file.
export Export WordPress content to a WXR file.
help Get help on WP-CLI, or on a specific command.
import Import content from a WXR file.
jetpack Control your local Jetpack installation.
language
media Import new attachments or regenerate existing ones.
menu List, create, assign, and delete menus.
network
option Manage options.
package Manage WP-CLI packages.
plugin Manage plugins.
post Manage posts.
post-type Manage post types.
rewrite Manage rewrite rules.
role Manage user roles.
scaffold Generate code for post types, taxonomies, plugins, child themes, etc.
search-replace Search/replace strings in the database.
server Launch PHP's built-in web server for this specific WordPress install.
sg Manage SiteGround Cache
sgphpcompat Test compatibility with different PHP versions.
shell Interactive PHP console.
sidebar Manage sidebars.
site Perform site-wide operations.
super-admin Manage super admins on WordPress multisite.
taxonomy Manage taxonomies.
term Manage terms.
theme Manage themes.
transient Manage transients.
user Manage users.
widget Manage sidebar widgets.
Per informazioni dettagliate su un comando, ad esempio il comando “wp db export” digita questo comando:
wp help db export
Il risultato sarà il seguente:
NAME
wp db export
DESCRIPTION
Exports the database to a file or to STDOUT.
SYNOPSIS
wp db export [] [--=] [--tables=] [--exclude_tables=] [--porcelain]
ALIAS
dump
Runs `mysqldump` utility using `DB_HOST`, `DB_NAME`, `DB_USER` and
`DB_PASSWORD` database credentials specified in wp-config.php.
OPTIONS
[]
The name of the SQL file to export. If '-', then outputs to STDOUT. If omitted, it will be '{dbname}.sql'.
[--=]
Extra arguments to pass to mysqldump
[--tables=]
The comma separated list of specific tables to export. Excluding this parameter will export all tables in the database.
[--exclude_tables=]
The comma separated list of specific tables that should be skipped from exporting. Excluding this parameter will export all tables in the database.
[--porcelain]
Output filename for the exported database.
EXAMPLES
# Export database with drop query included
$ wp db export --add-drop-table
Success: Exported to 'wordpress_dbase.sql'.
# Export certain tables
$ wp db export --tables=wp_options,wp_users
Success: Exported to 'wordpress_dbase.sql'.
# Export all tables matching a wildcard
$ wp db export --tables=$(wp db tables 'wp_user*' --format=csv)
Success: Exported to 'wordpress_dbase.sql'.
# Export all tables matching prefix
$ wp db export --tables=$(wp db tables --all-tables-with-prefix --format=csv)
Success: Exported to 'wordpress_dbase.sql'.
# Skip certain tables from the exported database
$ wp db export --exclude_tables=wp_options,wp_users
Success: Exported to 'wordpress_dbase.sql'.
Aggiornare WordPress tramite WP-CLI
Prima di tutto dovrai verificare l’attuale versione di WordPress:
username@servername [~/WordPress/location]# wp core version
5.2.1
Per aggiornare la versione di WordPress ad una più recente, utilizza il seguente comando:
username@servername [~/WordPress/location]# wp core update
Updating to version 4.8.1 (en_US)...
Downloading update from https://downloads.wordpress.org/release/wordpress-4.8.1-partial-0.zip...
Unpacking the update...
Success: WordPress updated successfully.
Aggiornare i plugin di WordPress tramite WP-CLI
Se desideri aggiornare i plugin o i temi del tuo sito WordPress, puoi farlo con WP-CLI. Per verificare ad esempio lo stato dei plugin ora installati, utilizza questo comando:
username@servername [~/WordPress/location]# wp plugin list
+----------------+----------+-----------+---------+
| name | status | update | version |
+----------------+----------+-----------+---------+
| akismet | active | available | 3.3.2 |
| google-captcha | active | none | 1.31 |
| hello | inactive | none | 1.6 |
| jetpack | active | none | 5.3 |
| sg-cachepress | active | none | 3.3.2 |
+----------------+----------+-----------+---------+
Abbiamo 5 plugin nella nostra installazione di esempio. È presente un aggiornamento per uno di questi. Per eseguire un aggiornamento di quel plugin possiamo usare il seguente comando:
username@servername [~/WordPress/location]# wp plugin update akismet
Enabling Maintenance mode...
Downloading update from https://downloads.wordpress.org/plugin/akismet.3.3.4.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the plugin...
Plugin updated successfully.
Disabling Maintenance mode...
+---------+-------------+-------------+---------+
| name | old_version | new_version | status |
+---------+-------------+-------------+---------+
| akismet | 3.3.2 | 3.3.4 | Updated |
+---------+-------------+-------------+---------+
Success: Updated 1 of 1 plugins.
Installare ed attivare plugin e temi WordPress tramite WP-CLI
Per installare ed attivare un nuovo plugin utilizza la sintassi:
wp plugin install Plugin_Name
wp plugin activate Plugin_Name
Sostituisci “Plugin_Name” con il nome esatto del plugin scelto.
Installazione ed utilizzo di WP Doctor
WP Doctor è uno strumento sviluppato per aiutarti a diagnosticare problemi su WordPress come ad esempio un aggiornamento fallito, una pagina bianca, problemi di caricamento, e così via. Per utilizzare questo tool, dovrai prima installarlo. Puoi farlo con il seguente comando, da eseguire nella cartella principale del sito:
wp package install git@github.com:wp-cli/doctor-command.git
Dopo aver installato il tool, puoi utilizzarlo con il comando wp doctor.
Per conoscere tutte le opzioni possibili, digita:
wp doctor --help
Per avviare tutti i controlli di base, utilizza:
wp doctor check --all
Le verifiche che il tool eseguirà sono:
core-verify-checksums – Controlla se WordPress corrisponde alla sua verifica checksum.
file-eval – Cerca in tutti i file il pattern eval(.*base64_decode(.* che in molti casi indica un codice malevolo.
cache-flush – Indica il numero di occorrenze della funzione of the wp_cache_flush().
autoload-options-size – Avvisa quando la dimensione delle opzioni autoload raggiunge i 90kb.
constant-savequeries-falsy – Conferma lo stato previsto della costante SAVEQUERIES. SAVEQUERIES fa sì che WordPress salvi una traccia di ciascuna query SQL, che è un’operazione piuttosto pesante, per questo si scoraggia l’utilizzo di SAVEUQERIES su siti attivi.
constant-wp-debug-falsy – Verifica se wp debug è attiva, verificando lo stato della costante WP_DEBUG.
core-update – Verifica se l’applicazione è aggiornata. Vengono mostrati errori quando è disponibile una release minore di WordPress; viene mostrato un avvertimento quando è presente una release maggiore.
cron-count – Conta i cron job presenti e mostra un errore se questo eccede i 50 cron job salvati.
cron-duplicates – Verifica i cron job duplicati e mostra un errore quando risultano più di 10.
option-blog-public – Verifica se il sito è disponibile pubblicamente controllando l’opzione blog_public.
plugin-active-count – Mostra un avviso quando ci sono più di 80 plugin activated.
plugin-deactivated – Mostra un avviso quando più del 40% dei plugin sono disattivati.
plugin-update – Mostra un avviso quando sono disponibili aggiornamenti per i plugin.
theme-update – Mostra un avviso quando sono presenti aggiornamenti per il tema.
php-in-upload – Mostra un avviso quando è presente un file PHP nella cartella upload.
language-update – Mostra se è disponibile una nuova versione della lingua utilizzata.
Se preferisci eseguire solo uno o alcuni dei comandi sopra riportati, puoi semplicemente specificarli al posto dell’opzione –all . Ecco alcuni esempi:
wp doctor check autoload-options-size
oppure
wp doctor check autoload-options-size core-verify-checksums
Installazione ed utilizzo di WP Profile
WP Profile è un tool sviluppato per aiutarti nella diagnosi di problemi di lentezza di WordPress. L’idea principale di questa estensione è quella di suddividere il processo di caricamento in più fasi e fornire così la possibilità di verificarli singolarmente. Fornisce informazioni su tempistiche, risorse richiamate, e location. Per utilizzare il tool, dovrai prima installarlo. Puoi farlo eseguendo questo comando nella cartella principale del sito WordPress:
wp package install wp-cli/profile-command
Dopo l’installazione, potrai iniziare a utilizzarlo con il comando wp profile .
Per verificare tutti i comandi disponibili, digita:
wp profile --help
Le opzioni del comando wp profile sono:
- eval – Traccia arbitrary code execution. L’arbitrary code execution (ACE) viene utilizzata per descrivere l’abilità di un malintenzionato ad eseguire codice arbitrario su un sito scelto.
- eval file – Traccia l’esecuzione di un file specifico.
- hook – Traccia le metriche per gli hook WordPress (azioni e filtri).
- stage – Traccia ogni stato del processo di caricamento WordPress (bootstrap, main_query, template).
Per approfondire la lentezza di caricamento di un sito WordPress, inizia con il comando stage come mostrato qui:
wp profile stage
Puoi eseguirlo nella cartella principale del sito. Il risultato sarà una tabella che mostra informazioni sul processo di caricamento del tuo sito. Le colonne più importanti di questa tabella sono:
- Stage – Ci sono 3 stage – bootstrap, main_query, template. In poche parole – bootstrap è dove WordPress si costruisce, caricando plugin e tema, e avviando gli hook di inizializzazione, main_query è il modo in cui WordPress si interfaccia con le richieste e come le trasforma in queries, template è dove WordPress determina quale template del tema mostrare in base alla query principale e la mostra.
- Time – Mostra il tempo richiesto da ciascuno stage.
- Cache ratio – Mostra la percentuale di caching di ciascuno stage.
Controlla quale stage richiede più tempo (ad es. bootstrap) e lancia questo comando:
wp profile stage bootstrap --spotlight
Utilizza —spotlight per filtrare i valori nulli.
Ciò che di solito rallenta di più le applicazioni WordPress non sono le funzionalità di base, ma i suoi plugin. Puoi tracciarli eseguendo:
wp profile hook plugins_loaded --fields=callback,time,location --spotlight
Il risultato di questo comando ti darà informazioni sui tempi di caricamento dei diversi plugin:
Altre attività che puoi svolgere con WP-CLI
Puoi scrivere post direttamente dalla riga di comando. Per creare un post, utilizza:
username@servername [~/WordPress/location]# wp post create --post_type=page --post_status=publish --post_title='My test post' --post_content='This is a test post'
Success: Created post 18.
Se non desideri più un post, puoi rimuoverlo con:
username@servername [~/WordPress/location]# wp post delete 18
Success: Trashed post 18.
Puoi anche creare un backup del database di WordPress via WP-CLI, usando il seguente comando:
username@servername [~/WordPress/location]# wp db export
Success: Exported to 'username_wp123-3150ba8.sql'.
Se decidi di cambiare il dominio principale del sito WordPress, puoi farlo facilmente con il comando:
wp option update home https://newdomain.com
wp option update siteurl https://newdomain.com
Puoi ottenere maggiori informazioni utilizzando il comando help o visitando il sito del progetto.