Så langt i denne serien har vi sett på hovedinnholdstyper i WordPress. Men hva med de ekstra dataene om alt innholdet?
Det er der metadata kommer inn i spill.
Som jeg dekket i en tidligere del av denne serien, har WordPress fire hovedinnholdstyper som den lagrer i fire databasetabeller:
De tre første av disse kan også ha metadata tildelt dem, og hver har sin egen metadatabord i databasen for å lagre dette.
Metadata kan beskrives som data om data. Wikipedia definerer to typer metadata:
Strukturelle metadata handler om utforming og spesifikasjon av datastrukturer og er mer riktig kalt "data om containere av data"; beskrivende metadata, På den annen side handler det om individuelle forekomster av applikasjonsdata, datainnholdet.
Med denne definisjonen bruker WordPress beskrivende metadata. Det vi definerer som data i WordPress, og hva som kan defineres som metadata, er litt uskarpt, og svarer ikke direkte til det som er lagret i metadatabordene. For eksempel:
post_type
er et eksempel på metadata, men det er lagret i wp_posts
bordwp_postmeta
bord, som du forventer.Så det er enklere å tenke på metadata i WordPress, ikke i henhold til den strenge definisjonen av begrepet, men som data lagret i de tre metadatabordene.
WordPress bruker tre databasetabeller for metadata:
wp_postmeta
lagrer metadata om innlegg (inkludert vedlegg, navigasjonsmenyelementer og revisjoner)wp_commentmeta
lagrer metadata om kommentarerwp_usermeta
lagrer metadata om brukereDen eneste objekttypen i WordPress som ikke har metadata er lenken.
Metadatabordene er nesten nesten identiske fordi de bare har fire felt:
WordPress kan bruke denne strukturen til å lagre store mengder metadata ved hjelp av en enkel struktur. Dette betyr at funksjonene du bruker til å vise og spørre metadata for innlegg, brukere og kommentarer, er svært like.
Metadataene som er lagret i et enkelt WordPress-installasjon, vil variere fra det som er lagret i en annen installasjon, fordi plugins og temaer kan legge til egne metadata, og fordi på enkelte nettsteder må du definere bestemte metadata mens i andre du ikke vil.
Men la oss se på noen av de vanligste typene metadata:
wp_postmeta
bord. Du kan legge til dem ved hjelp av det vanlige brukergrensesnittet eller ved å lage dine egne metaboxer i skjermbildene etter redigering. Dette kan være spesielt nyttig når du vil at brukerne skal kunne legge til metadata til en bestemt posttype, og du vil gjøre grensesnittet så brukervennlig som mulig.wp_usermeta
Tabellen lagrer metadata om de fleste brukere, for eksempel roller, evner, dashbordinnstillinger og til og med for- og etternavn.wp_commentmeta
tabell, mens plugins som lar deg legge til metadata til innlegg, for eksempel SEO plugins, vil legge til poster i wp_postmeta
bord. Du kan teoretisk legge til metadata via temaet ditt, men det er mer fornuftig å gjøre dette i et plugin, da det generelt er relatert til funksjonalitet og ikke vises.Selvfølgelig er listen ikke begrenset til disse typene. Faktisk lagres data om innlegg, kommentarer eller brukere som ikke kan lagres i deres hoveddatabase tabeller i de relevante metadatabordene.
Hvis du legger til et nytt felt for å lagre data, bør du alltid bruke disse tabellene og ikke kjernebordene.
WordPress har en metadata API som du bruker til å legge til, endre, få og slette metadata. Det finnes en rekke funksjoner som er spesifikke for hver type metadata som du bruker til å skrive ut metadata i malfiler: du bør bruke disse i stedet for noen generiske metadatafunksjoner.
Metadata API-funksjonene for hver innholdstype er svært like og har samme parametere:
Legge til metadata | Få metadata | Oppdaterer metadata | Slette metadata | |
---|---|---|---|---|
innlegg | add_post_meta () | get_post_meta () | update_post_meta () | delete_post_meta () |
brukere | 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 () |
parametere | $ POST_ID , $ meta_key , $ meta_value , $ unik (valgfri) | $ POST_ID , $ meta_key , $ singel (valgfri), | $ POST_ID , $ meta_key , $ meta_value , $ prev_value (valgfri) | $ POST_ID , $ meta_key , $ meta_value (valgfri) |
Disse funksjonene kan brukes i malfiler og plugins, for eksempel i temaets enkeltmail, kan du bruke følgende til å skrive ut metadata om innlegget:
Dette er bare en veldig enkel måte å utdata noen metadata på - det er mange flere muligheter, noen av hvilke jeg vil dekke senere i denne serien.
WordPress bruker tre metadatabord til å lagre data om tre innholdstyper: innlegg, brukere og kommentarer. Disse tabellene brukes til alt som ikke er lagret i kjernen wp_posts
, wp_users
og wp_comments
tabeller, og er tabellene du bør skrive data til hvis du legger til nye felt via temaer eller plugins. De tre tabellene fungerer på nesten identiske måter og har svært liknende funksjoner som du kan bruke til å legge til, oppdatere, slette og få metadata.
Som nevnt ovenfor, kan taksonomiske termer bli sett på som en annen type metadata i WordPress, og dette er hva jeg vil dekke i neste del av denne serien.