WordPress: creare le tabelle dei plugin

Una guida alla creazione e alla gestione delle tabelle dei plugin di WordPress.

Molti plugin di WordPress si appoggiano a tabelle personalizzate create nel database MySQL del sito. Creare tabelle è un requisito fondamentale di tutti quei plugin che hanno una struttura complessa. In questo articolo parleremo della creazione di queste tabelle personalizzate nel database.

Prefisso delle tabelle

Nel file wp-config.php è possibile specificare un prefisso per le tabelle del database. Per impostazione predefinita il prefisso è wp_, ma dovete sempre verificarne il valore in uso per creare le vostre tabelle.

Questo valore si trova nella variabile $wpdb->prefix. Quindi se volete creare una tabella chiamata {prefisso}test dovete scrivere:

Creare la tabella

Il passo successivo è creare la tabella. Si può usare la funzione dbDelta() contenuta in wp-admin/includes/upgrade.php , e per questo motivo dobbiamo includere questo file nel nostro script. Questa funzione esamina la struttura della tabella e fa un raffronto con la struttura voluta, oltre che modificare la tabella se necessario, e in questo senso si rivela molto utile per gli aggiornamenti.

Per funzionare, la funzione dbDelta() vuole questi requisiti:

  • Dovete inserire ogni campo su una nuova riga nella query SQL.
  • Dovete usare due spazi tra le parole PRIMARY KEY e la definizione della vostra chiave primaria.
  • Dovete usare la parola chiave KEY invece che INDEX e ne dovete includere almeno una.

Nota

Ovviamente potete usare anche il metodo query() dell’oggetto $wpdb se non volete sottostare a queste limitazioni.

Esempio:

Inserire i primi dati

Ecco come inserire i primi dati nella tabella appena creata:

Una cosa importante da ricordare è che dovreste sempre filtrare i dati in entrata nel database utilizzando i metodi $wpdb->escape() e $wpdb->prepare. Per ulteriori informazioni consultate la documentazione.

Aggiungere un numero di versione

Potete aggiungere un numero di versione alla vostra tabella che vi servirà per gli aggiornamenti:

Il codice completo

Richiamare le funzioni

Infine, dobbiamo far eseguire le due funzioni definite in precedenza quando il plugin viene attivato nel backend di WordPress:

Aggiornamento del plugin

Quando è disponibile una nuova versione di un plugin, è necessario aggiornare anche la struttura delle tabelle. Potete aggiungere il seguente codice alla funzione plugin_install() per verificare se la versione del plugin è l’ultima disponibile e eventualmente aggiornarne la tabella:

Dalla versione 3.1 di WordPress l’hook di attivazione non viene invocato quando il plugin viene aggiornato, quindi dovete aggiungere la seguente routine di verifica:

In questo caso la action di verifica ha luogo quando il plugin è stato effettivamente caricato.