DEV Community

Cover image for Comprendi MySQL in WordPress e ottimizza le query
Andrea Barghigiani
Andrea Barghigiani

Posted on • Edited on

Comprendi MySQL in WordPress e ottimizza le query

Foreword: So che su dev.to vengono condivisi principalmente articoli in inglese ma vorrei iniziare a condividere delle porzioni di articoli che pubblico su SkillsAndMore per vedere se l'audience italiana di questa community li apprezza. Fatemi sapere che ne pensate con un commento ;)

Leggi l'articolo completo: https://skillsandmore.org/comprendere-mysql-wordpress/

WordPress è sicuramente una piattaforma molto potente che permette a chiunque di creare il proprio sito web e offre agli sviluppatori un gran numero di funzioni che richiamano automaticamente gli elementi di una pagina, ma c’è qualcosa che si cela dietro le quinte e che è meglio che tu conosca nel dettaglio.

Alcune funzioni come the_title() o the_content() ci permettono di inserire rispettivamente il titolo e il contenuto di uno specifico articolo o pagina e semplificano sicuramente il nostro lavoro. Devi sapere che queste informazioni provengono dal database MySQL che salva al suo interno tutte le informazioni relative alla tua installazione WordPress.

Il database MySQL è un componente essenziale per la tua installazione WordPress, in molte occasioni mi riferisco a questo come alla memoria di un sito web perché al suo interno vengono salvate tutte le informazioni relative all’installazione e al suo utilizzo.

Introduzione alle tabelle WordPress

I database possono contenere al loro interno diverse tabelle che organizzano le informazioni contenute grazie all’aiuto di righe e colonne. Qua sotto puoi vedere una piccola porzione della tabella wp_posts e a breve ti spiego come è organizzato l’intero database WordPress.

Esempio tabella wp_posts in WordPress

Le tabelle servono a definire delle aree particolari all’interno delle quali si desidera salvare un determinato tipo di informazione. Facciamo un esempio dal vivo, poco fa ti ho detto che WordPress è in grado di salvare un gran numero di informazioni, tra i primi elementi che dicevo erano presenti gli articoli.

Come ormai dovresti sapere, ogni articolo ha diverse sezioni come: titolo, corpo, categorie, tag e qualsiasi altro campo che il tuo tema o un plugin ti permette di aggiungere.

Per esempio dopo aver scritto il tuo articolo, quando premi per la prima volta il bottone salva WordPress andrà a inserire alcune informazioni (chiamati anche record nel gergo dei database) all’interno della tabella wp_posts mentre altre verranno salvate all’interno di wp_postmeta.

Quante tabelle ha WordPress?

Se devo essere sincero, la struttura del database di questa piattaforma non è molto complessa, infatti in un’installazione di base troveremo uno schema di questo tipo (tra parentesi trovi il nome delle tabelle che troverai nel tuo database MySQL):

  • Articoli (wp_posts)
  • Commenti (wp_comments)
  • Utenti (wp_users)
  • Meta Articoli (wp_postmeta)
  • Meta Commenti (wp_commentmeta)
  • Meta Utenti (wp_usermeta)
  • Opzioni (wp_options)
  • Link (wp_links)
  • Tassonomie (wp_termmeta, wp_terms,wp_term_taxonomy, wp_term_relationship)

Come puoi vedere, con solo 12 tabelle WordPress è in grado di funzionare offrendo già un gran numero di servizi!

Come fare una query MySQL in WordPress

Chi ha sviluppato siti in PHP e MySQL prima dell’avvento dei CMS Open Source, si ricorderà benissimo la funzione mysql_query() (oggi addirittura deprecata) che permetteva di inviare una query al database MySQL e salvare il risultato all’interno di una variabile per usarla successivamente all’interno della pagina.

Che tu ti ricordi o meno la presenza di questa funzione, il mio intento era soltanto quello di farti capire che con il linguaggio PHP abbiamo alcune funzioni che permettono di collegarsi al database mentre grazie a WordPress ne abbiamo altre.

Le prime che mi vengono in mente sono:

  • $wpdb->get_var() – grazie al metodo get_var() è possibile inserire una query SQL, selezionare la colonna e la riga interessata per ottenere il valore cercato;
  • $wpdb->get_row() – con questa sarà invece possibile selezionare una intera riga. Ad esempio, potresti avere l’id di un utente e utilizzare questo metodo per andare a prendere delle informazioni presenti nella sua riga;
  • $wpdb->get_col() – invece di una riga, con questo puoi usare la tua SQL per selezionare soltanto una colonna.

Nella pagina del Codex troverai moltre altre funzioni utili e magari anche più adatte ai tuoi scopi ma siamo qua per capire come WordPress può essere di nostro aiuto soprattutto se non abbiamo a nostra disposizione grandi conoscenze MySQL.

L’aiuto delle Classi WP_*

Ogni Loop non è altro che una query MySQL generata automaticamente dalla piattaforma WordPress.

Sicuramente le query generate da uno sviluppatore esperto saranno più ottimizzate rispetto a quelle generate da una macchia (infatti spesso una macchina non può battere un essere umano in creatività), ma questo rappresenta un vantaggio per tutti noi piccoli sviluppatori che si trovano a lavorare con clienti che richiedono sempre di più ma sono disposti a spendere sempre meno.

Come puoi vedere WordPress ha pensato un pò a tutto e grazie alle cache sarai in grado di ottimizzare il tuo lavoro.

Vieni a leggere l'articolo completo!

Questa è soltanto una porzione dell'articolo pubblicato su SkillsAndMore. Se ti ho incuriosito ti consiglio di venire a leggere questo o gli altri articoli presenti all'interno del nostro blog.

Se invece desideri migliorare le tue conoscenze sullo sviluppo web puoi venire a consultare i nostri corsi. Ci impegniamo molto a pubblicare dei contenuti che siano utili e pratici in modo da aiutarti nel tuo lavoro.

Piaciuto l'articolo?

Fammelo sapere lasciando il tuo commento o una tua reazione!

Top comments (0)