Il comando wp post
di WP-CLI permette di effettuare ogni tipo di operazione sui post. Il comando wp post
non effettua operazioni solo sugli articoli del blog, ma permette di creare e gestire pagine statiche e post personalizzati, utilizzando i corrispondenti parametri. La tabella che segue fornisce un elenco con la descrizione dei sottocomandi di wp post
:
Comando | Descrizione |
---|---|
wp post create |
Crea un nuovo post. |
wp post delete |
Cancella un post esistente. |
wp post edit |
Avvia l'editor di sistema per la modifica di un post esistente. |
wp post generate |
Genera un numero arbitrario di post di esempio. |
wp post get |
Preleva i dati relativi ad un post. |
wp post list |
Preleva un elenco di post. |
wp post meta |
Permette di effettuare operazioni di gestione sui custom field di un post. |
wp post term |
Permette di effettuare operazioni di gestione sui termini di un post. |
wp post update |
Aggiorna uno o più post esistenti. |
Ognuno dei comandi dell'elenco dispone del suo set di parametri che non saranno qui elencati.
Prelevare un elenco di post
Il comando che permette di prelevare un elenco di post in base ai parametri trasmessi è wp post list
. Si consideri il seguente esempio:
wp post list
Il risultato sarà un elenco di tutti i post del sito in formato tabellare.
L'immagine mostra i campi predefiniti della risposta di WP CLI. Tuttavia è possibile specificare diversamente i campi della risposta passando i parametri --field
o --fields
:
wp post list --fields=post_title,post_status,post_date,post_author
Il nome di uno dei campi può essere utilizzato come parametro e, associato ad un valore, permette di personalizzare la query da eseguire sul database. Il comando che segue permette di estrarre dal database tutti i post in stato publish
:
wp post list post_status=publish
Aggiungere, modificare, eliminare e listare i custom field (meta) di un post
Per effettuare operazioni sui custom field viene offerto il comando wp post meta
. Nell'esempio che segue viene prima aggiunto un custom field al post con ID=1
, poi viene listato l'elenco dei custom field del post:
wp post meta add key=book_author value="J. R. R. Tolkien"
wp post meta list 1
Il risultato è visibile nell'immagine che segue.
La creazione di un post
Il comando wp create
permette di creare un nuovo post. Grazie ai parametri disponibili è possibile specificare autore, data di pubblicazione, contenuto, riassunto, stato del post, tipo di post (articolo, pagina o custom post type), stato dei commenti, password, slug e molti altri dati. Nell'esempio che segue si creerà un nuovo post copiando il contenuto da un file di testo presente in una specifica directory del server:
wp post create --post_author=1 --post_title="Il Signore degli Anelli" --post_excerpt="Il Signore degli Anelli è un romanzo high fantasy epico scritto da J. R. R. Tolkien" --post_category="Libri" --tags_input='fantasy' --meta_input='{"book_author":"J. R. R. Tolkien"}' ./wp-cli-posts/il-signore-degli-anelli.txt
Ecco cosa succede:
--post_author
stabilisce l'autore del post in base all'ID;--post_title
stabilisce il titolo del post;--post_excerpt
imposta il contenuto del riassunto;--post_category
stabilisce la categoria che deve essere già disponibile. Se la categoria non esiste dovrà essere prima creata con il comandowp term create
;--tags_input
inserisce un array di tag separati da virgole;--meta_input
inserisce un array di custom field in formato JSON;<file>
è il percorso di un file il cui contenuto viene utilizzato per generare il contenuto del post. Se il percorso del file è presente il valore di--post_content
sarà ignorato.
L'immagine che segue mostra l'esito positivo nel terminale dei comandi. Il valore restituito rappresenta l'ID del post.
Ecco invece il nuovo post nella dashboard di WordPress.
Il post è in stato di bozza per impostazione predefinita. Per sovrascrivere questa impostazione si potrà utilizzare il parametro --post_status
.
L'immagine mostra il titolo, lo slug e il corpo dell'articolo copiato dal file di testo specificato.
L'ultima immagine, infine, mostra il valore del custom field acquisito.