La guida definitiva al database di WordPress
Pubblicato: 2022-02-09Al suo interno, WordPress è un CMS (Content Management System). Per gestire i contenuti, deve essere in grado di archiviarli. WordPress lo fa attraverso cartelle, file e un database. In precedenza abbiamo trattato il filesystem di WordPress in un articolo separato; questa volta ci concentreremo sul database.
In questo articolo, esamineremo il database di WordPress, la sua struttura e il funzionamento di ciascun campo. Abbiamo anche incluso una breve lezione di storia su MySQL. Suggerimento – Il My in MySQL non significa che sia tuo; La mia è una persona reale, ma chi? – Continua a leggere per scoprirlo.
Sommario
- Una (molto) breve storia di SQL, MySQL e MariaDB
- Come accedere al database di WordPress
- phpMyAdmin
- Plesk/cPanel
- Client SSH/MySQL/MariaDB
- Plugin WordPress
- Struttura del database di WordPress
- Struttura della tabella
- wp_commento meta
- wp_commenti
- wp_links
- wp_opzioni
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_tassonomia
- wp_utentemeta
- wp_users
- Struttura della tabella
Una (molto) breve storia di SQL, MySQL e MariaDB
WordPress utilizza un RDBMS chiamato MySQL. Tecnicamente è basato su MySQL poiché, sempre più, viene utilizzato MariaDB al posto di MySQL. SQL sta per Structured Query Language ed è il linguaggio che utilizziamo per interagire con il database, e non il database stesso.
MySQL ha svolto un ruolo significativo nella crescita di Internet come lo conosciamo oggi. Introdotto per la prima volta nel 1995 come alternativa ai prodotti offerti da Microsoft e Oracle, è diventato rapidamente lo standard RDBMS d'oro preferito.
La storia di MySQL è colorata, essendo stata acquisita da Sun Microsystems e poi da Oracle (Oracle ha acquisito Sun Microsystems e MySQL con essa).
In risposta all'acquisizione di MySQL da parte di Oracle, Monty Widenius, il creatore originale di MySQL, ha biforcato MySQL in MariaDB, che ha chiamato in onore di sua figlia, Maria. (È interessante notare che MySQL prende il nome dall'altra figlia di Monty, My). Nel tempo si sono sviluppate differenze tra MariaDB e MySQL; tuttavia, i due rimangono intercambiabili in molti scenari, inclusi i database di WordPress.
Infatti, in molti casi, MariaDB è considerato un sostituto drop-in di MySQL. Ciò significa che puoi disinstallare MySQL, installare invece MariaDB e continuare a lavorare come se nulla fosse cambiato. Detto questo, MariaDB può offrire miglioramenti delle prestazioni in alcune situazioni e offre anche una maggiore compatibilità, ad esempio, con i motori di archiviazione.
È importante notare che MySQL rimane gratuito e viene rilasciato con un sistema a doppia licenza. In molti casi, MySQL viene utilizzato per fare riferimento a database che sono MySQL o MariaDB.
Come accedere al database di WordPress
Ci sono diverse opzioni disponibili quando si tratta di connettersi al database di WordPress. Il metodo o i metodi disponibili dipenderanno in gran parte dal tipo di hosting WordPress che utilizzi. Se non sei sicuro di come sia configurato il tuo server, parla con il tuo provider di hosting o con l'amministratore di sistema. In entrambi i casi, le opzioni possono includere;
phpMyAdmin
phpMyAdmin è uno strumento preferito in quanto ci consente di connetterci al database tramite una GUI basata sul Web. phpMyAdmin deve essere installato sullo stesso server che ospita il database, con molti provider di hosting che offrono phpMyAdmin immediatamente.
Plesk/cPanel
Plesk e cPanel sono due piattaforme del pannello di controllo che svolgono una funzione simile: un'interfaccia utente che facilita la gestione del server. Naturalmente, ci sono alcune differenze chiave, comprese le tecnologie e i sistemi operativi che supportano. In ogni caso, ci consentono anche di accedere ai database, anche se in modi leggermente diversi.
Client SSH/MySQL/mariaDB
SSH è un modo meno intuitivo per connettersi a un database, offrendo una CLI (Command Line Interface) invece di una GUI. Per questo motivo, si consiglia una comprensione più approfondita dei comandi SQL. SSH deve essere impostato in modo esplicito sullo stesso server che ospita il database prima di connettersi ad esso.
Plugin
Puoi anche utilizzare i plugin di WordPress per accedere al tuo database WordPress. Utilizzando un plug-in, puoi accedere al database direttamente dalla tua console di amministrazione di WordPress. Qui, dovrai assicurarti di scegliere un plug-in da un fornitore affidabile e seguire tutte le migliori pratiche applicabili per mantenere i tuoi dati al sicuro. Se non sei sicuro di quale plugin scegliere, leggi la nostra guida su come scegliere i migliori plugin per il tuo sito WordPress.
Struttura del database di WordPress
Il database di WordPress è composto da 12 tabelle. Ogni tabella, per impostazione predefinita, inizia con il prefisso wp_; tuttavia, questo può essere modificato durante l'installazione iniziale e il processo di configurazione. La modifica del prefisso è generalmente consigliata per motivi di sicurezza di WordPress, soprattutto se intendi o hai già più installazioni sullo stesso server.
Le 12 tabelle che compongono il database di WordPress sono le seguenti (elencate in ordine alfabetico):
- wp_commento meta
- wp_commenti
- wp_links
- wp_opzioni
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_tassonomia
- wp_utentemeta
- wp_users
Ora esamineremo ogni tabella individualmente e osserveremo quali dati memorizza e la sua struttura interna.
Struttura della tabella
Prima di entrare nei dettagli di ogni tabella, vale la pena dedicare del tempo a guardare come è strutturata. Se non hai familiarità con la documentazione del database, questa sezione ti fornirà un corso accelerato che troverai utile nella sezione successiva. D'altra parte, se hai abbastanza familiarità con le tabelle SQL, sentiti libero di andare avanti.
- Nome campo: questo è il nome del campo, che troverai nella tabella SQL
- Descrizione: l'abbiamo inserito per aiutarti a capire che tipo di dati contiene il campo
- Tipo: questo è il tipo di dati accettato dal campo. I numeri tra parentesi rappresentano il limite massimo del numero di caratteri accettabili che possiamo inserire
- Null: al momento non è chiaro il motivo per cui questo campo viene utilizzato
- Chiave – Questo ci dice se la voce è una chiave o meno. Esistono diversi tipi di chiavi, tra cui:
- Primario
- Primaria (parte)
- Indice
- Indice (parte)
- Unico
- Multiplo
- Predefinito: se la voce ha un valore predefinito, il valore predefinito verrà elencato qui
- Note – Eventuali note aggiuntive
wp_commento meta
La tabella wp_commentsmeta memorizza i metadati relativi ai commenti. I commenti vengono archiviati separatamente nella tabella wp_comments. La tabella ha i seguenti campi:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
meta_id | Questo è un ID univoco per la voce. Si incrementa automaticamente | bigint(20)non firmato | Primario | ||
commento_id | Questo è l'ID del commento a cui si riferiscono i metadati come trovato nella tabella wp_comments | bigint(20)non firmato | Indice | 0 | |
meta_key | Questo identifica il tipo di metadati a cui è destinata la voce | varcar(255) | sì | Indice | Nullo |
meta_valore | Questi sono i metadati effettivi | testo lungo | sì | Nullo |
wp_commenti
La tabella wp_comments memorizza i commenti dei post. I metadati relativi ai commenti sono archiviati nella tabella wp_commentmeta. La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
commento_ID | Questo è un ID univoco per la voce. Si incrementa automaticamente | bigint(20) | Primario | N / A | |
commento_post_ID | Questo è l'ID del post per cui è stato scritto il commento, come si trova nella tabella wp_posts | bigint(20) | Indice | 0 | |
commento_autore | Questo è il nome dell'autore che ha scritto il commento | testo minuscolo | |||
commento_autore_email | Questo è l'indirizzo email dell'autore che ha scritto il commento | varcar(100) | Indice | ||
comment_author_url | Questo è l'URL del sito web dell'autore che ha scritto il commento | varcar(200) | |||
commento_autore_IP | Questo è l'indirizzo IP dell'autore che ha scritto il commento | varcar(100) | |||
data_commento | Questa è la data e l'ora in cui è stato pubblicato il commento | appuntamento | 0000-00-00 00:00:00 | ||
comment_date_gmt | Questa è la data e l'ora GMT (Greenwich Meridian Time) in cui è stato pubblicato il commento | appuntamento | Indice e Indice Pt2 | 0000-00-00 00:00:00 | |
commento_contenuto | Questo è il vero commento lasciato | testo | |||
commento_karma | Questo è disponibile per l'uso da parte dei plugin per scopi di gestione dei commenti | int(11) | |||
commento_approvato | Indica se il commento è stato approvato o meno | varcar(20) | Indice Parte 1 | 0 | |
commento_agente | Da qui è stato pubblicato il commento | varcar(255) | |||
tipo_commento | Questo è il tipo di commento lasciato | varcar(20) | |||
commento_genitore | Se il commento è una risposta, questo campo indica il commento del genitore | bigint(20)non firmato | Indice | 0 | |
ID utente | Se un utente che commenta è registrato, questo sarà il suo ID disponibile in wp_users | bigint(20)non firmato | 0 |
wp_links
Questa tabella è stata originariamente creata per supportare i blogroll, una funzionalità che è stata eliminata a partire da WordPress 3.5. Viene mantenuto per compatibilità con le versioni precedenti ma non è più in uso. La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
link_id | Questo è un ID univoco per la voce. Incrementa automaticamente | bigint (20) non firmato | Primario | ||
link_url | Questo è l'URL del collegamento | varcar(255) | |||
nome_collegamento | |||||
Questo è il nome del collegamento | varcar(255) | ||||
link_image | Questo è l'URL dell'immagine relativa al collegamento | varcar(255) | |||
link_target | Questo è il frame di destinazione del collegamento | varcar(25) | |||
link_descrizione | Questa è una descrizione del collegamento | varcar(255) | |||
link_visibile | Questo ci dice se il link è mostrato pubblicamente o meno | varcar(20) | Indice | Y | |
link_owner | Questo è l'ID utente dell'utente che ha creato il collegamento come disponibile in wp_users | bigint (20) non firmato | 1 | ||
link_rating | Questa è la valutazione del collegamento | int(11) | 0 | ||
link_aggiornato | Questa è la data e l'ora in cui il collegamento è stato aggiornato | appuntamento | 0000-00-00 00:00:00 | ||
link_rel | Questa è la relazione del collegamento | varcar(255) | |||
link_note | Si tratta di note sul collegamento | testo medio | |||
link_rss | Questo è l'indirizzo del feed RSS del collegamento | varcar(255) |
wp_opzioni
Le impostazioni di WordPress configurate tramite la console di amministrazione sono archiviate qui. Plugin e temi in genere memorizzeranno anche le informazioni sulle impostazioni qui, come illustrato nello screenshot qui sotto. Qui possiamo vedere l'opzione di frequenza di scansione del nostro Monitor delle modifiche ai file del sito Web impostata su giornaliera.
La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
opzione_id | Questo è un ID univoco per la voce. Incrementa automaticamente. | bigint(20) senza segno | Primario | ||
nome_opzione | Questo è il nome dell'opzione/impostazione | varcar(64) | Unico | ||
valore_opzione | Questo è il valore dell'impostazione memorizzata | testo lungo | |||
caricamento automatico | Questa impostazione dice a wp_load_alloptions() se dovrebbe caricare automaticamente l'opzione o meno | varcar(20) | Indice | sì |
wp_postmeta
I metadati dei post che accompagnano ogni post sono archiviati qui. I metadati possono includere file allegati, miniature, post slug desiderati e altre informazioni simili. La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
meta_id | Questo è un ID univoco per la voce. Incrementa automaticamente | bigint(20) senza segno | Primario | ||
Nome campo post_id | Questo è l'ID del post a cui sono associati i metadati come disponibile in wp_posts | bigint(20) senza segno | Indice | 0 | |
meta_key | Questa è una chiave di indice che identifica i metadati, poiché ogni post può avere più di un metadati | varcar(255) | sì | Indice | Nullo |
meta_valore | Questi sono i metadati effettivi | testo lungo | sì | Nullo |
wp_posts
La tabella wp_posts è una delle principali e contiene il nucleo dei dati di WordPress. Contiene i post, le pagine e le voci del menu di navigazione effettivi, come mostrato nell'esempio seguente che mostra la pagina di esempio predefinita inclusa in ogni nuova installazione di WordPress.
La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
ID | Questo è un ID univoco per la voce. Incrementa automaticamente | bigint(20) senza segno | Primario e indice (parte 4) | ||
post_autore | Questo è l'ID dell'autore che ha scritto il post come disponibile in wp_users | bigint(20) senza segno | Indice | 0 | |
data di pubblicazione | Questa è la data e l'ora in cui è stato creato il post | appuntamento | Indice (parte 3) | 0000-00-00 00:00:00 | |
data_post_gmt | Questa è la data e l'ora GMT (Greenwich Mean Time) in cui è stato creato il post | appuntamento | 0000-00-00 00:00:00 | ||
post_content | Questo è il vero contenuto del post | testo lungo | |||
titolo del post | Questo è il titolo del post | testo | |||
post_estratto | Questo è un estratto del post | testo | |||
post_status | Questo è lo stato del post | varcar(20) | Indice (parte 2) | pubblicare | |
commento_stato | Questo ci dice se i commenti sul post sono consentiti o meno | varcar(20) | aprire | ||
ping_status | Questo ci dice se ping e trackback sono consentiti o meno | varcar(20) | aprire | ||
post_password | I post possono essere protetti da password con qualsiasi password applicabile memorizzata qui | varcar(20) | |||
nome_post | Questo è lo slug URL del titolo del post | varcar(200) | indice | ||
to_ping | Questo è un elenco di URL a cui WordPress dovrebbe inviare pingback ogni volta che il post viene aggiornato | testo | |||
ping | Questo è un elenco di URL di cui WordPress ha eseguito il pingback quando aggiornato | testo | |||
post_modificato | Questa è la data e l'ora dell'ultima modifica del post | appuntamento | 0000-00-00 00:00:00 | ||
post_modificato_gmt | Questa è la data e l'ora GMT dell'ultima modifica del post | appuntamento | 0000-00-00 00:00:00 | ||
post_content_filtrato | Questa è una versione filtrata di post_content che viene in genere utilizzata dai plugin per scopi di memorizzazione nella cache | testo lungo | |||
post_genitore | Quando il post è una revisione o un allegato, questo crea la relazione genitore-figlio | bigint(20) senza segno | Indice | 0 | |
guida | Questo è il Global Unique Identifier (GUID) del post | varcar(255) | |||
menu_ordine | Questo è il numero d'ordine in cui compaiono le pagine e gli articoli non postali | int(11) | 0 | ||
tipo_post | Questo identifica il tipo di contenuto | varcar(20) | Indice (parte 1) | inviare | |
post_mime_type | Questo è il tipo mimo degli allegati dei post | varcar(100) | |||
conteggio_commento | Questo è il numero totale di commenti, trackback e pingback | bigint(20) | 0 |
wp_terms
I termini sono oggetti di classificazione utilizzati per classificare gli oggetti in WordPress. Ad esempio, le categorie e i tag utilizzati nei post sono tipi di termini. Questa tabella contiene tutti i diversi tipi di termini utilizzati in WordPress. La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
term_id | Questo è un ID univoco per la voce. Incrementa automaticamente | bigint(20) senza segno | Primario | ||
nome | Questo è il nome del termine | varcar(200) | Indice | ||
lumaca | Questa è la lumaca del termine | varcar(200) | Multiplo | ||
termine_gruppo | Questo è un alias che i temi e i plugin possono utilizzare per raggruppare i termini | bigint(10) | 0 |
wp_termmeta
Questa tabella memorizza i metadati associati ai termini trovati in wp_terms. La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
meta_id | Questo è un ID univoco per la voce. Incrementa automaticamente | bigint(20) senza segno | Primario | ||
term_id | Questo è l'ID del termine a cui si riferiscono i metadati come disponibile in wp_terms | bigint(20) senza segno | Indice | 0 | |
meta_key | Questa è una chiave di identificazione per il termine metadati | varcar(255) | sì | Indice | NULLO |
meta_valore | Questi sono i metadati effettivi | testo lungo | sì | NULLO |
wp_term_relationships
Questa tabella mantiene le relazioni tra post e tassonomie. La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
id_oggetto | Questo è l'ID del post come disponibile in wp_posts | bigint(20) senza segno | Primaria (parte 1) | 0 | |
termine_tassonomia_id | Questo è l'ID del termine tassonomia disponibile in wp_term_taxonomy | bigint(20) senza segno | Primaria (Parte 2) e Indice | 0 | |
termine_ordine | Questo è l'ordine del termine | int(11) | 0 |
wp_term_tassonomia
Questa tabella fornisce le tassonomie dei termini e, in quanto tali, un contesto in cui possono essere utilizzati. Ad esempio, possiamo utilizzare il termine database come categoria di post e come categoria di prodotto (supponendo che stiamo vendendo servizi di database). In questo caso, la categoria post e la categoria prodotto sono tassonomie di termini. La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
termine_tassonomia_id | Questo è un ID univoco per la voce. Incrementa automaticamente | bigint(20) senza segno | Primario | ||
term_id | Questo è l'ID del termine disponibile in wp_terms | bigint(20) senza segno | Unico (Parte 1) | 0 | |
tassonomia | Questo è lo slug della tassonomia | varcar(32) | Unico (Parte 2) e Indice | ||
descrizione | Questa è una descrizione della tassonomia | testo lungo | |||
genitore | Questo è l'ID della tassonomia padre se la tassonomia è un figlio | bigint(20) senza segno | 0 | ||
contare | Questo è il numero di oggetti a cui viene assegnata questa tassonomia | bigint(20) | 0 |
wp_utentemeta
Questa tabella memorizza dati utente aggiuntivi che non si trovano nella tabella wp_users. Lo stesso WordPress, così come i plugin o i temi, possono utilizzare questa tabella.
Un esempio di metadati utente è il nickname utente. Sebbene WordPress includa questo campo per impostazione predefinita, fa ancora parte dei metadati, come mostrato di seguito. Un altro esempio è WooCommerce; un plug-in di e-commerce che utilizza questa tabella per memorizzare informazioni sui clienti come l'indirizzo di spedizione.
La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
umeta_id | Questo è un ID univoco per la voce. Incrementa automaticamente | bigint(20) senza segno | Primario | ||
ID utente | Questo è l'ID utente a cui si riferiscono le informazioni come trovato in wp_users | bigint(20) senza segno | Indice | 0 | |
meta_key | Questo è un identificatore chiave per la meta voce | varcar(255) | sì | Indice | Nullo |
meta_valore | Questi sono i metadati effettivi | testo lungo | sì | Nullo |
wp_users
Le informazioni sugli utenti di WordPress sono archiviate qui. Poiché gli utenti sono parte integrante dell'ecosistema WordPress, questa tabella è essenziale.
La tabella memorizza solo le informazioni di base per ciascun utente, come mostrato nell'esempio seguente. Tutte le altre informazioni sono memorizzate nella tabella wp_usermeta.
La tabella ha le seguenti colonne:
Nome della colonna | Descrizione | Tipo | Nullo | Chiave | Predefinito |
---|---|---|---|---|---|
ID | Questo è un ID univoco per la voce. Incrementa automaticamente | bigint(20) senza segno | Primario | ||
Login utente | Questo è il nome utente dell'utente | varcar(60) | Indice | ||
utente_pass | Questa è la password dell'utente | varcar(64) | |||
nome_utente | Questo è il nome visualizzato dell'utente | varcar(50) | Indice | ||
utente_email | Questo è l'indirizzo email dell'utente | varcar(100) | |||
user_url | Questo è l'URL dell'utente (es. sito web) | varcar(100) | |||
utente_registrato | Questa è la data e l'ora in cui l'utente è stato registrato | appuntamento | 0000-00-00 00:00:00 | ||
chiave_attivazione_utente | Questa è la chiave di attivazione dell'utente, utilizzata per reimpostare la password | varcar(60) | |||
stato dell'utente | Questo non è più utilizzato come da WordPress 3.0, ma utilizzato per indicare se l'utente era spam | int(11) | 0 | ||
nome da visualizzare | Questo è il nome visualizzato pubblico dell'utente | varcar(250) |
Acquisisci familiarità con il database di WordPress
I database possono essere piuttosto intimidatori per chi non lo sapesse: dopotutto, contengono tutti i dati necessari per il funzionamento di WordPress. Sebbene sia vero che un passo falso qui può causare il crash del sito, non lasciare che questo ti intimidisca. Dopotutto, conoscere il database di WordPress può facilitare notevolmente i tuoi sforzi per la risoluzione dei problemi, se necessario.
L'impostazione di un ambiente di test o staging può fornirti uno spazio sicuro in cui sei libero di sperimentare senza rischiare di portare offline il tuo sito web. Puoi persino configurare un ambiente di staging XAMPP sul tuo computer gratuitamente, fornendoti tutto il necessario per padroneggiare il database di WordPress.