I de tidligere delene av denne serien har vi jobbet gjennom de forskjellige tabellene i WordPress-databasen og undersøkt hvilke data de lagrer, hvordan de samhandler med hverandre og hvilke funksjoner du bruker til å samhandle med dem.
I denne siste delen fortsetter jeg å se på Multisite. Databasen for en WordPress Multisite-installasjon vil inneholde ekstra tabeller: et sett med tabeller for hvert nettsted som kjører på nettverket, og noen ekstra tabeller for selve nettverket, samt tabellene for kjerneområdet.
Dette betyr at det er tre elementer å forstå hvordan databasen fungerer i Multisite:
Jeg begynner med å se på hvordan WordPress lagrer data for kjerneområdet.
For kjerneområdet i et nettverk bruker WordPress de samme 11 databasetabellene som i en enkelt installasjon av et nettsted:
wp_posts
wp_postmeta
wp_comments
wp_commentmeta
wp_users
wp_usermeta
wp_links
wp_term_relationships
wp_term_taxonomy
wp_terms
wp_options
Disse vil inneholde data relatert til hovedstedet. To av dem vil også inneholde data knyttet til resten av nettverket. Disse er:
wp_users
wp_usermeta
De andre ni tabellene fungerer på samme måte som de gjør for et enkelt nettsted - de lagrer data om hovedsidenes innhold. Men de to siste tabellene lagrer også brukerdata som er relevante for hele nettverket, samt brukerdata som kun brukes av kjerneområdet. Jeg vil undersøke dette på et øyeblikk.
I tillegg til å lagre brukerdata for hele nettverket i to av kjernebordene, oppretter WordPress også flere tabeller i en Multisite-installasjon som inneholder data knyttet til nettverket og dets nettsteder.
Disse er:
wp_blogs
wp_blog_versions
wp_registration_log
wp_signups
wp_site
wp_sitemeta
wp_sitecategories
(valgfri)WordPress bruker disse syv (eller seks) tabeller pluss de to brukertabellene for å lagre alle dataene om multisite-nettverket. Her er hva hver av dem lagrer:
Bord | Data | Merknader |
---|---|---|
wp_blogs | Dette feltet lagrer detaljer hvert nettsted i nettverket, så det har bare en post for hvert nettsted. | Feltene inkluderer blog_id , domene , registrert (dataene som nettstedet ble opprettet til) og sist oppdatert (igjen en dato). |
wp_blog_versions | Den nåværende databaseversjonen for hvert nettsted, oppdatert når du oppdaterer nettverket. | Tre felt: blog_id , db_version og sist oppdatert |
wp_registration_log | Admin-brukeren opprettet når hvert nettsted er registrert | For hvert nettsted (identifisert av blog_id ), bordet lagrer bruker-ID for administratoren, deres e-postadresse og datoen de registrerte. |
wp_signups | Lagrer data på nettsteder som er registrert for, men ikke aktivert | Feltene inkluderer en unik signup_id for hver post, registrerte domenet seg, tittelen, brukerens innlogging og e-postadresse. Når et nettsted er aktivert, slettes denne platen og en plate er opprettet i wp_blogs . |
wp_site | Lagrer nettadressen for hovedsiden | Denne tabellen har bare en post med tre felt: ID på hovedstedet (som vil være 1 ), domenet og banen (normalt / ) |
wp_sitemeta | Lagrer metadata for nettverket | Dette tabellen er ekvivalent av wp_options for hele nettverket. Den inneholder alle metadataene knyttet til nettverksinnstillingene pluss mindre mengder metadata for de enkelte nettstedene. Den har fire felt: en unik meta_id , site_id (som lenker til wp_blogs ), meta_key og meta_value . |
wp_sitecategories | Valgfri tabell opprettet bare hvis globale vilkår er aktivert for et nettsted. | Ved å aktivere globale vilkår kan du bruke vilkår på flere nettsteder i nettverket. Tabellen (hvis den er opprettet), vil ha fire felt: cat_ID , CAT_NAME , category_nicename og sist oppdatert . Merk at disse tabellene lagrer vilkår, ikke bare kategorier, til tross for feltnavnene. |
wp_users | Data på alle brukere er lagret her i stedet for for hvert nettsted, da enkelte brukere kan få tilgang til flere nettsteder på nettverket. | I en Multiste installasjon oppretter WordPress to ekstra felt i wp_users tabell: spam og slettet, begge er boolske verdier som mislykkes til NEI . |
wp_usermeta | De wp_usermeta Tabeller lagrer alle metadata for alle nettstedbrukere | Tabellen brukes på samme måte som for en enkelt installasjon. |
De fleste av disse tabellene er relatert til wp_blogs
bord via blog_ID
feltet, da alle dataene som trengs for nettstedene i nettverket, må kobles til kjerneområdet. Eksemplene er:
wp_sitecategories
, som lenker til innlegg og annet innholdwp_signups
, siden disse ikke er registrerte nettsteder ennåwp_usermeta
, som har en indirekte link til wp_blogs
via wp_users
For mer detaljer om hver av disse tabellene og deres felt, se Codex-siden i databasen.
Måten som WordPress lagrer dataene for hver av nettstedene i nettverket ditt, er ganske enkelt: det oppretter flere kopier av hver databasetabell, en for hver side. Men det lager ikke flere kopier av wp_users
og wp_usermeta
som alle er lagret i hovedbordet.
For å skille mellom tabellene for hvert nettsted, legger WordPress til side ID-en til tabellnavnet, for eksempel for nettsted 2, wp_posts
blir wp_2_posts
.
Hvert nettsted vil ha følgende tabeller:
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
De xx
ovenfor vil bli erstattet av den numeriske nettstedet ID. Alle disse tabellene lagrer data på samme måte for hvert nettsted som de ville hvis nettstedet var en enkelt nettstedinstallasjon.
Hvis du manipulerer, henter eller flytter data fra en WordPress Multisite-installasjon, er det viktig å forstå måtene Multisite lagrer data på forskjellig fra en Multisite-installasjon.
Som jeg har vist, er det tre hovedelementer til dette: Tabeller brukt til kjerneområdet; Tabeller som brukes til å lagre databasen om nettverket som helhet; og tabeller opprettet for hvert nytt nettsted. Strukturen av disse ligner på en enkelhetsinstallasjon så lenge du husker at de to tabellene som lagrer data på brukere ikke dupliseres for hvert nettsted.