Per funzionare WordPress ha bisogno di una serie di file e di un po’ di dati. I file si occupano della logica di funzionamento e della costruzione estetica del sito, molti file sono scritti in php (che è il linguaggio di programmazione usato da WordPress) ma per far funzionare tutto perbene servono anche altri tipi di file: immagini, fogli di stile, parti in html e javascript.
Tutti i dati, in sostanza tutti i contenuti del sito, vengono invece salvati all’interno di un database, per la precisione all’interno di una serie di tabelle. Per questo motivo per avere una backup completo di un sito è necessario avere una copia di tutti i file e un export del database.
Per una volta cominciamo dalla fine e andiamo a vedere queste tabelle, almeno quelle presenti anche nell’installazione minima di WordPress.
Le 11 tabelle di base
Per quanto sorprendente possa sembrare l’installazione base di WordPress crea soltanto 11 tabelle, tutte perfettamente descritte nella documentazione del software.
Lo schema qui sopra si riferisce al database dalla versione 3 in poi, vediamolo nel dettaglio
wp_options
Contiene la maggior parte dei settaggi del sito (e di molti plugin), solo le informazioni necessarie per la connessione al database devono essere obbligatoriamente salvate in un file.
wp_posts
In questa tabella c’è la maggior parte della magia di un sito, si occupa di organizzare e salvare il contenuto degli articoli e delle pagina così come di tutti gli altri tipi di contenuto che può essere creato in wordpress.
wp_postmeta
Contiene i dati opzionali dei post, in una installazione molto semplice è una tabella quasi vuota.
wp_comments
La tabella contiene i commenti aggiunti agli articoli, alle pagine e agli eventuali altri contenuti. Oltre al commento stesso contiene informazioni sull’autore, il suo indirizzo email, la data in cui è stato inviato e ovviamente anche il riferimento al contenuto associato.
wp_commentmeta
La tabella contiene informazioni supplementari relative ai commenti, nessun dato personale e niente di particolarmente sofisticato, si tratta sostanzialmente di dati che permettono di semplificare la vita… al software stesso. E’ importante non dimenticare che WordPress nasce come software per blogger, è logico che articoli e commenti siano al centro della scena (e del database).
wp_links
La tabella links è ancora presente nelle versioni attuali di WordPress soprattutto per ragioni di retro compatibilità, questo tipo di contenuto è sparito alcune versioni fa.
wp_terms
Questa tabella contiene i tag e le categorie usati nei post.
wp_terms_relationship
Si occupa di gestire la relazione molti a molti tra i post e le categorie e i tag associati. La tabella è collegata sia alla wp_posts sia alla wp_terms attraverso la tabella wp_term_taxonomy.
wp_term_taxonomy
Questa tabella serve a gestire il tipo di tassonomia associata con i post, è collegata alla wp_terms e alla wp_term_relationships e contiene le relazioni con le categorie, i tag eccetera.
wp_users
Questa tabella contiene tutti i dati degli utenti iscritti al sito, dagli amministratori ai lettori registrati. Le tabelle contengono – tra le altre cose – il nome utente, l’indirizzo di posta elettronica e la password, ovviamente cifrata.
wp_usermeta
Come tutte le tabelle “meta” di WordPress contiene informazioni supplementari, in questo caso la tabelle contiene le informazioni aggiuntive degli iscritti al sito.
Una tabella
Potete immaginare una tabella come un foglio excel, la particolarità delle tabelle di un database è quella di essere particolarmente efficienti: non hanno limiti alla quantità di informazioni che possono contenere e sono molto veloci da usare, soprattutto quando si legge o si cerca un’informazione.
Il database di WordPress
Tutti i CMS esistenti usano un linguaggio di programmazione e un database per funzionare, WordPress non costituisce un’eccezione. Quando un visitatore atterra sulla home page del vostro sito viene richiamata una pagina, la index.php, che si occupa di fare una serie di cose tra cui, ad esempio, interrogare il database per chiedere “mi passi gli ultimi tre articoli pubblicati?”.
In altre parole WordPress non accede direttamente ai contenuti ma lo fa interrogando il database, un software specializzato nella gestione dei dati e di tutti i mal di testa che ne possono conseguire. La maggior parte dei CMS usano database di tipo SQL (Structured Query Language), questi sono specializzati nella gestione delle relazioni tra i dati e sono quindi particolarmente adatti per rispondere alle tipiche richieste di un CMS, come abbiamo visto sopra infatti per completare la pubblicazione di una singola pagine è necessario interrogare più tabelle che sono in relazione tra loro.
Originariamente WordPress usava solo il database MySQL, oggi può usare anche MariaDB, senza sostanziali differenze tra l’uno e l’altro. Non annoieremo i lettori del sito con una approfondita discussione sulle differenze tra i due software, sarebbe una discussione troppo nerd e troppo poco adatta all’articolo di agosto, diciamo che l’uno o l’altro sostanzialmente si equivalgono.
La tipica installazione di WordPress
In una tipica installazione di WordPress il database è molto più “ricco”, la maggior parte dei plugin aggiungono una o più tabelle per funzionare quindi è perfettamente normale avere un database con decine di tabelle. Questo sito ad esempio usa 145 tabelle e non è particolarmente sofisticato.
Lascia un commento