Comprendi MySQL in WordPress e ottimizza le query
Tags: wordpress, mysql
Published: 2018-07-28 08:56:50

---
title: Comprendi MySQL in WordPress e ottimizza le query
published: true
description: Conoscere la struttura del database MySQL di WordPress è molto utile per fare delle richieste in questa piattaforma. Scopri le funzioni adatte!
tags: wordpress, mysql
cover_image: https://skillsandmore.org/wp-content/uploads/2013/09/comprendi-mysql-wordpress-art-1024x276.png
---
![](https://thepracticaldev.s3.amazonaws.com/i/v7ei245i7046rhrgxc2p.png)

*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](https://skillsandmore.org/) 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/](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](https://skills-25umnrtpwpmcfs5cixx.netdna-ssl.com/wp-content/uploads/2013/09/contenuto-tabella-wp_posts.jpg)

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** A`rticoli` (wp_postmeta)
- **Meta** C`ommenti` (wp_commentmeta)
- **Meta** U`tenti` (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](https://codex.wordpress.org/it:Riferimento_classi/wpdb) 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](https://skillsandmore.org/consigli-alzare-fatturato/).

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](https://skillsandmore.org). Se ti ho incuriosito ti consiglio di venire a leggere [questo](https://skillsandmore.org/comprendere-mysql-wordpress/) o gli altri articoli presenti all'interno del [nostro blog](https://skillsandmore.org/blog/).

Se invece desideri **migliorare le tue conoscenze sullo sviluppo web** puoi venire a consultare i [nostri corsi](https://skillsandmore.org/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!