Il Database di WordPress

WordPress è un CMS che permette di creare siti dinamici, cioè siti le cui pagine cambiano dinamicamente in base alle informazioni richieste dal visitatore.

Secondo Wikipedia, i siti dinamici sono:

tutte quelle applicazioni web che interagiscono attivamente con l’utente, modificando le informazioni mostrate in base alle informazioni generate da quest’ultimo e ricevute dall’application server (user generated content).

La definizione è mutuata dalla tecnologia su cui si basa l’applicazione. In pratica, quando l’utente richiede una pagina, come ad esempio la pagina web in cui è visualizzato il contenuto di questo articolo, l’applicazione web preleva i dati necessari alla generazione della pagina da un archivio che risiede sullo stesso server, cui comunemente ci si riferisce con il termine database. L’applicazione può quindi utilizzare la stessa pagina per servire all’utente dati diversi, a seconda delle informazioni trasmesse dall’utente.

Lo schema del database di WordPress (origine WordPress.org)

Spesso è utile accedere direttamente ai dati contenuti nel database. Lo si può fare a scopi didattici, ma anche per agire, con le dovute cautele, sui dati stessi senza dover utilizzare l’applicazione web che utilizza quei dati. Ad esempio:

  • Potrebbe essere necessario modificare un URL in tutti gli articoli in cui compare, e questa operazone potrebbe essere particolarmente difficile operando sulle singole pagine del sito. Eseguendo una query sul database tramite phpMyAdmin, invece, l’operazione può essere eseguita in pochi istanti.
  • Un altro ambito in cui potrebbe essere utile, o addirittura indispensabile, accedere direttamente al database di WordPress è nella risoluzione dei problemi, come ad esempio quando si rende necessario un reset della password e non si ha accesso all’email dell’amministratore.
  • Un altro possibile caso in cui si rende utile accedere ai dati è quando si trasferisce un sito WordPress da un server ad un altro. In questo caso, accedere direttamente ai dati diventa necessario per migrare correttamente l’installazione.

Come si accede al database di WordPress

L’interfaccia da cui si accede al database di WordPress sarà diversa a seconda dell’host, ma quasi tutti gli hosting provider mettono a disposizione dei propri clienti un’applicazione web nota come phpMyAdmin. Ecco come viene descritto nel sito web ufficiale:

phpMyAdmin è uno strumento software libero scritto in PHP, destinato a gestire l’amministrazione di MySQL sul web. phpMyAdmin supporta una vasta gamma di operazioni su MySQL e MariaDB. Le operazioni più frequenti (gestione di database, tabelle, colonne, relazioni, indici, utenti, permessi, ecc.) possono essere eseguite tramite l’interfaccia utente, anche se si ha sempre la possibilità di eseguire direttamente qualsiasi dichiarazione SQL.

Se avete installato un pacchetto server locale come MAMP, potrete accedere a phpMyAdmin da un URL simile a questa: http://localhost:8888/phpMyAdmin/.

Se il vostro web host fornisce accesso ai servizi tramite cPanel, potrete accedere all’applicazione web di phpMyAdmin da un link normalmente disponibile nella sezione Database.

La sezione Database di cPanel
La sezione Database di cPanel

Una volta avviata l’applicazione, apparirà nel browser una schermata come quella visibile nell’immagine che segue.

phpMyAdmin
La home page di phpMyAdmin

Nel menu di sinistra ci saranno una serie di link rapidi e l’elenco di tutti i database disponibili. Nella pagina centrale sarà visibile un menu a schede che dà accesso alle varie funzionalità disponibili e una prima pagina di sintesi che fornisce informazioni sul database e sul server.

Dalla scheda Database sarà possibile accedere ad un modulo che permette di creare un nuovo database, funzionalità che abbiamo già utilizzato in fase di installazione di WordPress.

Una volta completata l’installazione di WordPress, phpMyAdmin vi darà accesso a tutte le tabelle, permettendovi di effettuare operazioni direttamente sui dati.

Nota: effettuare operazioni direttamente sul database è operazione molto rischiosa che potrebbe compromettere il funzionamento dell’intero sito. Siate prudenti, effettuate sempre prima un backup e fate le vostre prove prima in ambiente di staging o di sviluppo.

La struttura del database di WordPress

L’elenco delle tabelle di un’installazione base di WordPress in phpMyAdmin

Il modello di database su cui si basa WordPress è un modello relazionale, il quale viene implementato su software che vengono definiti DBMS (Database Management System).

WordPress utilizza database MySQL o MariaDB, che sono due DBMS tra i più utilizzati per lo sviluppo di siti PHP.

Nel database i dati vengono memorizzati in tabelle, che sono strutture di dati organizzati in righe e colonne. Nella versione 5.4 di WordPress, il database è composto dalle seguenti tabelle:

  • wp_commentmeta
  • wp_comments
  • wp_links
  • wp_options
  • wp_postmeta
  • wp_posts
  • wp_termmeta
  • wp_terms
  • wp_term_relationships
  • wp_term_taxonomy
  • wp_usermeta
  • wp_users

I nomi delle tabelle lasciano intuire il tipo di dati memorizzati. Ad esempio, i contenuti del sito vengono archiviati nella tabella wp_posts, mentre i tag e le categorie vengono memorizzati nella tabella wp_terms.

Nota: si tenga presente che il prefisso wp_ è quello predefinito. Se in fase di installazione lo avete cambiato, come è consigliato per motivi di sicurezza, il prefisso sarà quello personale.

Come si può intuire dai nomi, non tutte le tabelle ospitano dati che vengono visualizzati nel sito (back-end o front-end). La tabella wp-options, ad esempio, ospita i dati di configurazione dell’installazione, dei temi e dei plugin. Altre tabelle ospitano metadati (wp_terms) o relazioni (wp_term_relationships) tra i record di tabelle diverse.

Infine, le tabelle wp_users e wp_usermeta memorizzano i dati degli utenti del sito, come le credenziali di accesso, i ruoli e le capacità.

wp_options
Una vista generale della tabella wp_options

Analizzeremo le principali tabelle del database di WordPress nei prossimi capitoli.

Se l’host web lo consente, gli utenti avanzati di WordPress potranno accedere al database anche da riga di comando e/o WP-CLI, che è un’applicazione da riga di comando che permette di eseguire una grande varietà di operazioni su WordPress e sul database direttamente dal terminale della propria postazione. Questa opzione è sconsigliata per utenti alle prime armi.