Een WordPress-website bestaat uit drie hoofdelementen:
wp-content
map met de thema's, plug-ins en uploadsDe meeste WordPress-gebruikers komen nooit rechtstreeks in contact met de database en zijn zich er misschien niet eens van bewust dat ze voortdurend bezig zijn om hun site te vullen. Wanneer WordPress elke soort pagina oproept, is dat de startpagina, een enkele post of pagina of een archief, het gebruikt de database om inhoud te tonen die door redacteurs en beheerders aan de site is toegevoegd.
In deze reeks tutorials zal ik in detail kijken naar verschillende aspecten van de WordPress-database. De serie bestaat uit negen delen met betrekking tot het volgende:
In deze inleiding geef ik een overzicht van de databasetabellen en hoe deze betrekking hebben op de inhoudstypen waarmee u in WordPress werkt, en identificeer wat er is opgeslagen.
Omdat de databasetabellen worden gebruikt om inhoud op te slaan, moet u voordat u ze kunt begrijpen, de inhoud begrijpen. Er zijn een aantal soorten inhoud in WordPress:
Aan deze inhoudstypen zijn dan gegevens gekoppeld:
Naast deze zijn er andere soorten inhoud die anders worden opgeslagen:
Al deze soorten inhoud worden ergens in de database opgeslagen (of af en toe in thema's of plug-inbestanden zoals ik zal laten zien). Ze kunnen een eigen vermelding hebben of ze kunnen deel uitmaken van een ander item (bijvoorbeeld gestreamde inhoud die is gecodeerd in een bericht). Ze kunnen ook worden gekoppeld aan gegevens in andere tabellen. Gegevens over berichten worden bijvoorbeeld gekoppeld aan gegevens over gebruikers, zodat WordPress weet wie welke berichten heeft geschreven.
WordPress gebruikt een reeks databasetabellen met onderlinge relaties om de hoeveelheid gegevens die moeten worden opgeslagen te minimaliseren - dit creëert een-op-veel relaties. Dit betekent dat, bijvoorbeeld, één gebruiker veel berichten kan hebben die zij hebben geschreven in relatie tot hun gebruikersrecord. Het bespaart ruimte - als WordPress alle gebruikersgegevens voor elke gebruiker zou opslaan tegen elk bericht dat hun auteur was, zou dat veel herhaalde gegevens en veel ruimte betekenen.
Het onderstaande diagram is afkomstig uit de WordPress codex en toont de databasetabellen en hoe ze zijn gekoppeld:
De meeste tabellen zijn via één veld gekoppeld aan een of meer andere tabellen. Dit veld is een unieke ID voor elk record zoals post_id
. Dit wordt meer in detail in deze tabel getoond:
Tafel | Gegevens opgeslagen | Gekoppeld aan |
---|---|---|
wp_posts | Posts, pagina's, bijlagen, revisies en items van het navigatiemenu | wp_postmeta (via post_id )wp_term_relationships (via post_id ) |
wp_postmeta | Metagegevens voor elk bericht | wp_posts (via post_id ) |
wp_comments | Comments | wp_posts (via post_id ) |
wp_commentmeta | Metagegevens voor elke opmerking | wp_comments (via comment_id ) |
wp_term_relationships | Relaties tussen functies en taxonomieën | wp_posts (via post_id )wp_term_taxonomy (via term_taxonomy_id ) |
wp_term_taxonomy | Taxonomieën (inclusief categorieën en tags) | wp_term_relationships (via term_taxonomy_id ) |
wp_terms | Uw categorieën en tags en de voorwaarden die zijn toegewezen aan aangepaste taxonomieën | wp_term_taxonomy (via term_id ) |
wp_links | De links in je blogroll (als je die nog hebt) | wp_term_relationships (via LINK_ID ) |
wp_users | gebruikers | wp_posts (via post_author ) |
wp_user_meta | Metadata voor elke gebruiker | wp_users (via gebruikersnaam ) |
wp_options | Site-instellingen en opties (ingesteld via de schermen Instellingen en via plug-ins en thema's) | n / a |
Een paar dingen zijn vermeldenswaard:
wp_
voorvoegsel standaard. U kunt dit wijzigen wanneer u uw site configureert, maar er is niet veel waarde aan.wp_posts
tabel, waar de meeste van uw gegevens worden opgeslagen. Dit houdt (bijna) al het andere bij elkaar.wp_options
tafel. In deze tabellen worden gegevens opgeslagen over de site en de WordPress-installatie, die niet gerelateerd is aan gegevens over berichten of gebruikers.wp_users
en wp_comments
tabellen zijn niet gekoppeld - hoewel het mogelijk is om aan te geven dat gebruikers moeten worden geregistreerd voor commentaar, slaat WordPress feitelijk geen gegevens op over opmerkingen tegen elke gebruiker die ze heeft gepost. Na te hebben gekeken naar de inhoudstypen in WordPress en de databasetabellen die zijn gebruikt om ze op te slaan, kan het nuttig zijn om ze met elkaar te matchen. De onderstaande tabel toont welke databasetabel wordt gebruikt om elk type inhoud op te slaan.
Inhoudstype | (S) |
---|---|
posts | wp_posts |
pagina's | wp_posts |
aangepaste berichttypen | wp_posts |
bijlagen | wp_posts |
koppelingen | wp_links |
navigatiemenu-items | wp_posts |
categorieën | wp_terms |
labels | wp_terms |
aangepaste taxonomieën | wp_term_taxonomy |
taxonomie voorwaarden | wp_terms |
post metadata | wp_post_meta |
widgets | wp_options |
opties | wp_options |
gebruikers | wp_users |
hard gecodeerde inhoud | wp_posts (indien toegevoegd aan berichten)wp_options (indien toegevoegd aan widgets)Thema- en plug-inbestanden (indien hard gecodeerd) |
inhoud van derden | wp_posts (indien toegevoegd aan berichten)wp_options (indien toegevoegd via widgets of plug-ins)Thema- en plug-inbestanden (indien hard gecodeerd) |
U hebt misschien gemerkt dat niet alle databasetabellen in die tabel zijn opgenomen. Dat komt omdat sommige ervan worden gebruikt om metadata op te slaan en andere worden gebruikt om relaties op te slaan die beide later in deze serie gedetailleerder worden behandeld..
Hopelijk heb je nu een beter begrip van hoe en waar WordPress verschillende soorten gegevens opslaat met behulp van de databasestructuur. In deze serie zullen alle aspecten hiervan in meer detail worden besproken.
In het volgende deel zal ik relaties tussen gegevens onderzoeken en meer in detail kijken hoe specifieke tabellen zijn gekoppeld en hoe sommige puur worden gebruikt om gegevens over relaties op te slaan..