Inizio
/
Tutorial WordPress
/
Tutorial WP-CLI

Tutorial WP-CLI

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.

Menu dei Tutorial

Condividi questo articolo