Nelle parti precedenti di questa serie, abbiamo lavorato attraverso le diverse tabelle nel database di WordPress e abbiamo esaminato i dati che memorizzavano, come interagivano tra loro e quali funzioni si utilizzano per interagire con loro.
In questa parte finale, passerò a guardare Multisite. Il database per un'installazione multisito di WordPress conterrà tabelle aggiuntive: un insieme di tabelle per ogni sito in esecuzione sulla rete e alcune tabelle aggiuntive per la rete stessa, nonché le tabelle per il sito principale.
Questo significa che ci sono tre elementi per capire come funziona il database in Multisite:
Inizierò osservando come WordPress memorizza i dati per il sito principale.
Per il sito principale in una rete, WordPress utilizza le stesse 11 tabelle del database di una singola installazione del sito:
wp_posts
wp_postmeta
wp_comments
wp_commentmeta
wp_users
wp_usermeta
wp_links
wp_term_relationships
wp_term_taxonomy
wp_terms
wp_options
Questi conterranno dati relativi al sito principale. Due di loro conterranno anche dati relativi al resto della rete. Questi sono:
wp_users
wp_usermeta
Le altre nove tabelle funzionano nello stesso modo in cui operano per un singolo sito: memorizzano i dati sul contenuto del sito principale. Tuttavia, queste ultime due tabelle memorizzeranno anche i dati utente rilevanti per l'intera rete, nonché i dati utente che vengono utilizzati solo dal sito principale. Lo esaminerò tra un momento.
Oltre a memorizzare i dati dell'utente per l'intera rete in due delle tabelle principali, WordPress crea anche tabelle aggiuntive in un'installazione multisito che contiene dati relativi alla rete e ai suoi siti.
Questi sono:
wp_blogs
wp_blog_versions
wp_registration_log
wp_signups
wp_site
wp_sitemeta
wp_sitecategories
(opzionale)WordPress utilizza queste sette (o sei) tabelle più le due tabelle utente per memorizzare tutti i dati sulla rete Multisito. Ecco cosa memorizza ognuno di loro:
tavolo | Dati | Gli appunti |
---|---|---|
wp_blogs | Questo campo memorizza i dettagli di ogni sito nella rete, quindi ha solo un record per ciascun sito. | I campi includono blog_id , dominio , registrato (i dati su cui è stato creato il sito) e ultimo aggiornamento (di nuovo, una data). |
wp_blog_versions | La versione corrente del database per ciascun sito, aggiornata quando si aggiorna la rete. | Tre campi: blog_id , db_version e ultimo aggiornamento |
wp_registration_log | L'utente amministratore creato quando ogni sito è registrato | Per ogni sito (identificato da blog_id ), la tabella memorizza il ID utente per l'amministratore, il loro indirizzo email e la data di registrazione. |
wp_signups | Memorizza i dati su siti che sono stati registrati ma non attivati | I campi includono un unico signup_id per ogni record, il dominio registrato, il titolo, il login utente e l'indirizzo email. Una volta attivato un sito, questo record viene eliminato e viene creato un record wp_blogs . |
wp_site | Memorizza l'URL per il sito principale | Questa tabella ha un solo record con tre campi: l'id del sito principale (che sarà 1 ), il suo dominio e il percorso (normalmente / ) |
wp_sitemeta | Memorizza i metadati per la rete | Questa tabella è l'equivalente di wp_options per l'intera rete. Contiene tutti i metadati relativi alle impostazioni di rete più piccole quantità di metadati per i singoli siti. Ha quattro campi: un unico meta_id , site_id (che collega a wp_blogs ), meta_key e meta_value . |
wp_sitecategories | Tabella opzionale creata solo se i termini globali sono abilitati per un sito. | L'abilitazione dei termini globali consente di utilizzare termini su più siti nella rete. La tabella (se è stata creata), avrà quattro campi: cat_id , CAT_NAME , category_nicename e ultimo aggiornamento . Nota che questa tabella memorizza i termini, non solo le categorie, nonostante i nomi dei campi. |
wp_users | I dati su tutti gli utenti sono archiviati qui piuttosto che per ogni sito, poiché i singoli utenti possono avere accesso a più siti sulla rete. | In un'installazione multista, WordPress crea due campi aggiuntivi in wp_users tabella: spam e cancellati, entrambi i valori booleani sono predefiniti NO . |
wp_usermeta | Il wp_usermeta tabelle memorizza tutti i metadati per tutti gli utenti del sito | La tabella viene utilizzata nello stesso modo di una singola installazione del sito. |
La maggior parte di queste tabelle è correlata al wp_blogs
tavolo tramite il blog_ID
campo, poiché tutti i dati necessari per i siti nella rete dovranno essere collegati al record del sito principale. Le eccezioni sono:
wp_sitecategories
, che collega a post e altri contenutiwp_signups
, poiché questi non sono ancora registratiwp_usermeta
, che ha un link indiretto a wp_blogs
attraverso wp_users
Per maggiori dettagli su ciascuna di queste tabelle e i loro campi, vedere la pagina Codex sul database.
Il modo in cui WordPress memorizza i dati per ciascuno dei siti nella rete è abbastanza semplice: crea più copie di ciascuna delle tabelle del database, una per ogni sito. Tuttavia non crea copie aggiuntive di wp_users
e wp_usermeta
poiché questi sono tutti memorizzati nella tabella principale.
Per distinguere tra le tabelle per ogni sito, WordPress aggiunge l'ID del sito al nome della tabella, quindi ad esempio per il sito 2, wp_posts
diventa wp_2_posts
.
Ogni sito avrà le seguenti tabelle:
wp_xx_posts
wp_xx_postmeta
wp_xx_comments
wp_xx_commentmeta
wp_xx_links
wp_xx_term_relationships
wp_xx_term_taxonomy
wp_xx_terms
wp_xx_options
Il xx
sopra sarà sostituito dall'ID numerico del sito. Tutte queste tabelle memorizzano i dati nello stesso modo per ogni sito come farebbero se il sito fosse una singola installazione del sito.
Se stai manipolando, recuperando o spostando i dati da un'installazione Multisite di WordPress, è importante capire in che modo Multisite archivia i dati in modo diverso da un'installazione multisito.
Come ho mostrato, ci sono tre elementi principali: le tabelle utilizzate per il sito principale; tabelle utilizzate per archiviare il database sulla rete nel suo complesso; e tabelle create per ogni nuovo sito. La struttura di questi è simile all'installazione di un singolo sito purché si ricordi che le due tabelle che memorizzano i dati sugli utenti non sono duplicate per ogni sito.