Et WordPress-nettsted består av tre hovedelementer:
wp-innhold
katalog som inneholder temaer, plugins og opplastingerDe fleste WordPress-brukere kommer aldri i direkte kontakt med databasen, og kan ikke engang være oppmerksom på at det hele tiden jobber med å fylle sin side. Når WordPress serverer noen form for side, være at hjemmesiden, et enkelt innlegg eller en side eller et arkiv, åpner det databasen for å hente innhold som redaktører og administratorer har lagt til siden.
I denne serien av opplæringsprogrammer ser jeg detaljert på ulike sider av WordPress-databasen. Serien vil ha ni deler, som dekker følgende:
I denne introduksjonen gir jeg oversikt over databasetabellene og hvordan de relaterer seg til innholdstyper du kan være vant til å jobbe med i WordPress, og identifisere hva som er lagret der.
Siden databasetabellene brukes til å lagre innhold, må du forstå innholdet før du kan forstå dem. Det finnes en rekke typer innhold i WordPress:
Disse innholdstypene har da data knyttet til dem:
I tillegg til disse er det andre typer innhold som lagres annerledes:
Alle disse innholdstyper lagres et sted i databasen (eller av og til i temaer eller pluginfiler som jeg vil vise). De kan ha en egen oppføring, eller de kan være en del av en annen oppføring (for eksempel streamet innhold kodet til et innlegg). De kan også være knyttet til data i andre tabeller. For eksempel vil data om innlegg bli knyttet til data om brukere, slik at WordPress vet hvem som forfatter hvilke innlegg.
WordPress bruker en rekke databasetabeller med relasjoner mellom dem for å minimere mengden data som må lagres - dette skaper en til mange relasjoner. Dette betyr at en bruker kan ha mange innlegg som de forfattere relatert til deres brukeroppføring. Det sparer plass - hvis WordPress lagret alle brukerdataene for hver bruker mot hvert innlegg de forfattere, ville det bety mange gjentatte data og mye plass.
Diagrammet nedenfor er hentet fra WordPress-kodeksen og viser databasetabellene og hvordan de er koblet til:
De fleste tabellene er koblet til en eller flere andre tabeller via ett felt. Dette feltet vil være en unik identifikator for hver plate, for eksempel POST_ID
. Dette vises mer detaljert i denne tabellen:
Bord | Data lagret | Knyttet til |
---|---|---|
wp_posts | Innlegg, sider, vedlegg, revisjoner og navigasjonsmenyelementer | wp_postmeta (via POST_ID )wp_term_relationships (via POST_ID ) |
wp_postmeta | Metadata for hvert innlegg | wp_posts (via POST_ID ) |
wp_comments | kommentarer | wp_posts (via POST_ID ) |
wp_commentmeta | Metadata for hver kommentar | wp_comments (via comment_id ) |
wp_term_relationships | Forhold mellom stillinger og taksonomier | wp_posts (via POST_ID )wp_term_taxonomy (via term_taxonomy_id ) |
wp_term_taxonomy | Taxonomier (inkludert kategorier og koder) | wp_term_relationships (via term_taxonomy_id ) |
wp_terms | Dine kategorier og koder og vilkårene som er tilordnet tilpassede taksonomier | wp_term_taxonomy (via term_id ) |
wp_links | Lenkene i blogrollen din (hvis du fortsatt har en) | wp_term_relationships (via LINK_ID ) |
wp_users | brukere | wp_posts (via post_author ) |
wp_user_meta | Metadata for hver bruker | wp_users (via bruker-ID ) |
wp_options | Nettstedinnstillinger og alternativer (angitt via innstillingsskjermene og via plugin og tema) | n / a |
Noen ting er verdt å merke seg:
wp_
prefiks som standard. Du kan endre dette når du konfigurerer nettstedet ditt, men det er ikke mye verdi for det.wp_posts
bord, hvor de fleste av dataene dine blir lagret. Dette holder (nesten) alt annet sammen.wp_options
bord. Disse tabellene lagrer data om nettstedet og WordPress-installasjonen, som ikke er relatert til data om innlegg eller brukere.wp_users
og wp_comments
Tabeller er ikke koblet til - selv om det er mulig å spesifisere at brukere må registreres for å kommentere, lagrer WordPress ikke faktisk data om kommentarer mot hver bruker som har postet dem. Etter å ha sett på innholdstypene i WordPress og databasetabellene som brukes til å lagre dem, kan det være nyttig å matche de to opp. Tabellen nedenfor viser hvilken databasetabell som brukes til å lagre hver type innhold.
Innholdstype | Tabell (s) |
---|---|
innlegg | wp_posts |
sider | wp_posts |
egendefinerte innleggstyper | wp_posts |
vedlegg | wp_posts |
lenker | wp_links |
navigasjonsmenyelementer | wp_posts |
kategorier | wp_terms |
tags | wp_terms |
egendefinerte taksonomier | wp_term_taxonomy |
taksonomi vilkår | wp_terms |
post metadata | wp_post_meta |
widgets | wp_options |
opsjoner | wp_options |
brukere | wp_users |
hardkodet innhold | wp_posts (hvis lagt til innlegg)wp_options (hvis lagt til widgets)Tema- og pluginfiler (hvis hardkodede) |
tredjeparts innhold | wp_posts (hvis lagt til innlegg)wp_options (hvis lagt til via widgets eller plugins)Tema- og pluginfiler (hvis hardkodede) |
Du har kanskje lagt merke til at ikke alle databasetabellene er inkludert i den tabellen. Det er fordi noen av dem er vant til å lagre metadata og andre er vant til å lagre relasjoner som begge vil bli dekket mer detaljert senere i denne serien.
Forhåpentligvis har du nå en bedre forståelse av hvordan og hvor WordPress lagrer forskjellige typer data ved hjelp av databasestrukturen. Denne serien vil se nærmere på alle aspekter av dette.
I neste del skal jeg undersøke relasjoner mellom data, og se nærmere på hvordan bestemte tabeller knyttes sammen og hvordan noen brukes til å lagre data om relasjoner.