xr:d:DAFZ08eXPuc:7,j:46536872311,t:23020620
Query in WordPress: come funzionano e perchè servono
Query in WordPress: come funzionano e perchè servono

I plugin in commercio permettono di raccogliere in maniera comoda quasi tutte le informazioni di cui abbiamo bisogno nel lavoro quotidiamo; necessitiamo di plugin perchè le informazioni sono memorizzate nel database in una forma più comoda a WordPress, che ad un essere umano.

Cosa fare quando abbiamo bisogno di più informazioni?

Se l'informazione esiste ed è memorizzata nel database, ma non è mostrata in nessun pannello di amministrazione o plugin commerciale, dobbiamo accedere al database (di solito si utilizza phpMyAdmin, anche se ci sono diversi sistemi) individuare la tabella con le informazioni che stiamo cercando, e leggerla.

A volte è così semplice, ma altre volte le informazioni sono distribuite su più tabelle, che in un database relazionale come quello di WordPress, sono collegate da una chiave.

Non è chiaro? Per il momento va bene così.

Le informazioni sono raccolte in un certo modo

Per trovare un foglio di carta sul quale avevamo scritto un indirizzo email importante, e poi riposto in un cassetto della scrivania, dobbiamo sapere come questi cassetti sono organizzati: avremo il cassetto della cancelleria, quello dei contratti e documenti, e quello degli appunti presi a mano.

Se conosciamo questa struttura, allora siamo pronti a trovare il foglietto, perchè andremo direttamente ad aprire il cassetto degli appunti per prendere facilmente il foglio di cui abbiamo bisogno.

Allo stesso modo, con WordPress abbiamo la necessità di conoscere il modo con cui le informazioni sono memorizzate e collegate, così da poter andare a prendere l'informazione che ci serve.

Attenzione ai danni

Da phpmyadmin, cioè dallo strumento che ci permette di interagire col database, è possibile fare ogni danno immaginabile: possiamo per sbaglio cancellare la tabella con tutti gli articoli del sito web (o un'altra tabella ugualmente importante). Possiamo svuotare una tabella lasciandone intatta la struttura. E molti altri danni simili.

Un backup prima di procedere!

E' quindi necessario sapere esattamente cosa si sta facendo, prima ancora di accedere al database. Una volta deciso cosa modificare, è fondamentale fare un backup (bottone Export nel menu in alto) del database intero, o quantomeno della tabella che intendiamo modificare, così da poterla ripristinare in caso di problemi.

Query database utili per WordPress

Se al momento non conosciamo le caratteristiche del database, ma vogliamo provare ad utilizzare questo potente strumento, possiamo provare ad avviare alcune query di lettura (SELECT) che si limiteranno a leggere i dati, non a modificarli (UPDATE), non ad inserirli (INSERT INTO) o (peggio) a eliminarli (DELETE).

Query database - SELECT (lettura)

Queste sono query che girano nel database di WordPress, utili a raccogliere informazioni.

SELECT post_title FROM wp_posts WHERE post_type="post" AND post_status="publish"

Questa query serve a estrarre la lista dei titoli dei post pubblicati.

La stessa query ma con status "draft" ci indicherà i post in bozza.

SELECT post_title FROM wp_posts WHERE post_type="post" AND post_status="draft"

Da qui in poi, molta attenzione perchè si fanno danni: proviamo a vedere query di UPDATE, cioè che modificano i dati (senza chiedere conferma, senza possibilità di annullare l'operazione una volta che è stata lanciata).

Query database - UPDATE (modifica)

Attenzione perchè le seguenti query andranno a modificare i dati presenti nel database, e lo faranno in maniera irreversibile. Non c'è un cestino da cui recuperare i dati modificati, e molto spesso il sistema non chiederà nemmeno conferma prima di effettuare la modifica.

Fare un backup prima di procedere:

  • per resettare la password dell'utente "admin"
UPDATE wp_users SET user_pass = MD5("nuova-password") WHERE user_login = "nome-utente" AND post_type="post"
  • per mettere la prima lettera maiuscola e le altre minuscole a tutti i title dei post
UPDATE wp_posts SET post_title = CONCAT(UCASE(LEFT(post_title, 1)), LCASE(SUBSTRING(post_title, 2))) WHERE post_type="post"
  • Per applicare queste query alle pagine, basterà sostituire post_type="post" con post_type="page"

  • per eliminare tutti i post in bozza e fare pulizia nel DB
DELETE FROM wp_posts WHERE post_status="draft"

Una piccola accortezza: prima di lanciare una query UPDATE o DELETE che cambiano i dati in maniera irreversibile, consiglio sempre di lanciarla come SELECT per verificare quali dati e quante righe verranno impattate. Ad esempio, la query qui sopra: DELETE FROM wp_posts WHERE post_status="draft" può essere lanciata prima come SELECT * FROM wp_posts WHERE post_status="draft" così possiamo vedere cosa verrà cancellato, prima di farlo.


Di seguito sono query generiche, non create appositamente per il database di MySql ma che, se utilizzate con attenzione, offrono utili automatizzazioni

Impostare carattere minuscolo nelle stringhe presenti in una colonna

UPDATE [table] SET [field_name] = LOWER([field_name])

Sostituire tutti gli spazi nelle string presenti in una colonna, con un trattino

UPDATE [table] SET [field_name] = REPLACE([field_name], ' ', '-')

Lascia un commento

Programmatore WordPress
Panoramica privacy

Questo sito Web utilizza i cookie in modo che possiamo fornirti la migliore esperienza utente possibile. Le informazioni sui cookie sono memorizzate nel tuo browser ed eseguono funzioni come riconoscerti quando ritorni sul nostro sito Web e aiutare il nostro team a capire quali sezioni del sito Web ritieni più interessanti e utili.