Hittills i denna serie har vi tittat på huvudinnehållstyperna i WordPress. Men vad sägs om de ytterligare uppgifterna om allt innehåll?
Det är där metadata spelar in.
Som jag behandlade i en tidigare del av denna serie har WordPress fyra huvudinnehållstyper som den lagrar i fyra databasstabeller:
De tre första av dessa kan också ha metadata tilldelade dem, och varje har sin egen metadatabord i databasen för att lagra detta.
Metadata kan beskrivas som data om data. Wikipedia definierar två typer av metadata:
Strukturella metadata handlar om design och specifikation av datastrukturer och kallas mer korrekt "data om behållarna med data"; beskrivande metadata, Å andra sidan handlar det om enskilda fall av ansökningsdata, datainnehållet.
Med denna definition använder WordPress beskrivande metadata. Vad vi definierar som data i WordPress och vad som kan definieras som metadata är lite suddigt och motsvarar inte direkt det som lagras i metadataborden. Till exempel:
post_type
är ett exempel på metadata, men det är lagrat i wp_posts
tabellwp_postmeta
bord, som du förväntar dig.Så det är lättare att tänka på metadata i WordPress inte enligt den strikta definitionen av termen, men som de data som lagras i de tre metadataborden.
WordPress använder tre databastabeller för metadata:
wp_postmeta
lagrar metadata om inlägg (inklusive bilagor, menyalternativ för navigering och revisioner)wp_commentmeta
lagrar metadata om kommentarerwp_usermeta
lagrar metadata om användareDen enda objekttypen i WordPress som inte har metadata är länken.
Metadatabordarna är alla nästan identiska, eftersom de bara har fyra fält:
WordPress kan använda denna struktur för att lagra stora kvantiteter av metadata med en enkel struktur. Det innebär att funktionerna som du använder för att visa och fråga metadata för inlägg, användare och kommentarer, är mycket lika.
Metadata som lagras i en enskild WordPress-installation varierar från den som lagras i en annan installation, eftersom plugins och teman kan lägga till egna metadata och eftersom det i vissa webbplatser måste du definiera specifika metadata medan du i andra inte kommer att göra det.
Men låt oss ta en titt på några av de vanligaste metadatatyperna:
wp_postmeta
tabell. Du kan lägga till dem med hjälp av det vanliga gränssnittet Anpassade fält eller genom att skapa egna metaboxer i efterbehandlingsskärmarna. Detta kan vara särskilt användbart när du vill att användarna ska kunna lägga till metadata i en viss posttyp och du vill göra gränssnittet så användarvänligt som möjligt.wp_usermeta
Tabellen lagrar metadata om de flesta användare, till exempel roller, funktioner, instrumentpanelinställningar och till och med för- och efternamn.wp_commentmeta
tabell, medan plugins som låter dig lägga till metadata i inlägg, till exempel SEO-plugins, lägger till poster i wp_postmeta
tabell. Du kan teoretiskt lägga till metadata via ditt tema men det är mer meningsfullt att göra det i ett plugin, eftersom det generellt är relaterat till funktionalitet och inte visas.Naturligtvis är listan inte begränsad till dessa typer. Faktum är att eventuella uppgifter om inlägg, kommentarer eller användare som inte kan lagras i deras huvuddatatabeller lagras i relevanta metadatabord.
Om du lägger till ett nytt fält för att lagra data borde du alltid använda dessa tabeller och inte kärntabellerna.
WordPress har ett metadata API som du använder för att lägga till, ändra, hämta och ta bort metadata. Det finns en rad funktioner specifika för varje typ av metadata som du använder för att mata metadata i dina mallfiler: du borde använda dessa i stället för några generiska metadatafunktioner.
API-funktionerna för metadata för varje innehållstyp är mycket lika och har samma parametrar:
Lägga till metadata | Få metadata | Uppdatering av metadata | Radering av metadata | |
---|---|---|---|---|
inlägg | add_post_meta () | get_post_meta () | update_post_meta () | delete_post_meta () |
användare | add_user_meta () | get_user_meta () | update_user_meta () | delete_user_meta () |
kommentarer | add_comment_meta () | get_comment_meta () | update_comment_meta () | delete_comment_meta () |
parametrar | $ post_id , $ meta_key , $ meta_value , $ unik (valfri) | $ post_id , $ meta_key , $ enda (valfri), | $ post_id , $ meta_key , $ meta_value , $ prev_value (valfri) | $ post_id , $ meta_key , $ meta_value (valfri) |
Dessa funktioner kan användas i dina mallfiler och plugins, till exempel i ditt temas enkla postmall, kan du använda följande för att mata ut metadata om posten:
Det här är bara ett väldigt enkelt sätt att mata ut några metadata - det finns många fler möjligheter, av vilka jag senare kommer att täcka i denna serie.
WordPress använder tre metadatabord för att lagra data om tre innehållstyper: inlägg, användare och kommentarer. Dessa tabeller används för allt som inte lagras i kärnan wp_posts
, wp_users
och wp_comments
tabeller och tabellerna ska du skriva data till om du lägger till nya fält via teman eller plugins. De tre tabellerna fungerar på nästan identiska sätt och har mycket liknande funktioner som du kan använda för att lägga till, uppdatera, ta bort och få metadata.
Som jag nämnde ovan kan taxonomi termer ses som en annan typ av metadata i WordPress, och det här är vad jag kommer att täcka i nästa del av denna serie.