Som så mange eksempler på WordPress-terminologi kan begrepet "innlegg" være forvirrende, da det refererer til en innleggstype, samt en innholdstype som er lagret i en bestemt database tabell.
Her skal jeg avklare forskjellen mellom de to og se på posttyper i detalj.
I den forrige delen av denne serien undersøkte jeg de forskjellige innholdstypene i WordPress, som er lagret i en rekke forskjellige databasetabeller. Disse er:
I denne opplæringen undersøker jeg innleggene mer detaljert og skisserer posttyper, forholdet mellom dem og hvordan forstå alt dette kan hjelpe deg med å jobbe med dem.
Først begynner jeg å definere innlegg og hvordan de adskiller seg fra Innlegg (ja, det er forvirrende, og å legge til et hovedbrev gjør ikke ting så mye klarere!):
post
er et innholdsobjekt lagret i wp_posts
bord. Hver har en post_type
tildelt det, som kan være post
, side
eller noe annet.De wp_posts
bordet er vist i bildet nedenfor.
Gir mening? Hvis ikke, les videre, vil alle bli tydelige!
WordPress kommer med fem innleggstyper bygget inn:
I tillegg til dette kan du legge til dine egne tilpassede innleggstyper ved hjelp av register_post_type ()
funksjon, noe som betyr at WordPress-installasjonen din kan ha så mange innleggstyper som du vil. Hver posttype har samme status som de innebygde innleggstyper - noen ganger har jeg hørt om folk som tenker at 'egendefinert innleggstype' er en posttype selv. Det er det ikke!
Jeg skal illustrere det med et eksempel. Når du skriver en egendefinert forespørsel for innlegg, legger du til følgende i spørsmålsargumentene dine:
'post_type' => 'innlegg'
Men hvis du har opprettet en egendefinert posttype som heter my_post_type
, du vil spørre det med følgende:
'post_type' => 'my_post_type'
Du kan bruke dette post_type
argument for å spørre hvilken som helst innleggstype, og faktisk kan du spørre flere innleggstyper hvis du ønsker det. Jeg vil ikke gå i detalj på det som det er utenfor omfanget av denne opplæringen, men du kan lese mer på WordPress Codex-siden for WP_Query
.
La oss få en rask titt på hver av de innebygde posttyper, hvordan de ligner på hverandre og hvordan de er forskjellige. Merk at i tabellen nedenfor bruker jeg begrepet innlegg i generisk forstand for å beskrive innholdet i alle posttyper.
Post Type | Brukes for | Merknader |
---|---|---|
Post | Blogginnlegg eller lignende | Kjerneposttype - oppført på hovedbloggsiden |
Side | Statiske sider | Designet for å bli vist enkeltvis - ikke vanligvis brukt i arkiver (selv om de kan være). Sider kan ha foreldre, som er definert ved hjelp av post_parent feltet i posten for barnesiden.Hver side kan ha flere barn, men bare en forelder. |
Vedlegg | Dokumenter og bilder (som kanskje er ikke knyttet til et innlegg) | Media som er lastet opp til et innlegg, vil ha ID for det innlegget i sin post_parent felt. Bilder lastet opp via medieskjermen i dashbordet, vil ha dette feltet tomt. De guid feltet brukes til å lagre url i mediefilen. |
Revisjon | Individuelle revisjoner til hvert innlegg | Hver revisjon er vedlagt et innlegg: ID av det innlegget vil bli lagret i revisjonens post_parent felt. |
Navigasjonsmenyelementer | Individuelle navigasjonsmenyelementer | Hver meny vil inneholde et antall navigasjonselementer, som hver lagres som et innlegg. De menu_order feltet brukes til å lagre informasjon om rekkefølgen på navigasjonsmenyelementer, og ytterligere data som mål og foreldre menyelement lagres som poster i wp_postmeta bord. |
Egendefinerte innleggstyper kan registreres for å oppføre seg på samme måte som noen av de innebygde posttyper (unntatt feste
), men standard er post
. Hver av posttypene har sitt eget grensesnitt.
Som du kan se fra bordet over, er det post_parent
feltet er en viktig, da den lagrer informasjon om forhold mellom ulike innlegg. Disse inkluderer:
Du kan bruke post_parent
feltet på ulike måter i dine spørsmål. For eksempel for å søke etter barnesider på en gitt side, bruker du følgende, hvor ID
er IDen til foreldresiden:
'post_parent' => 'ID'
Du kan bruke en lignende spørring til å vise vedlegg lastet opp til et bestemt innlegg, eller alternativt du kan spørre vedlegg uten foreldre (dvs. de lastes opp direkte til mediaskjermen i dashbordet).
For å gjøre dette, bruker du følgende argument:
'post_parent' => '0'
Det er svært lite sannsynlig at du noen gang vil trenge å spørre om endringer, da du bare vil at besøkende skal se ditt publiserte innhold.
Du kan også bruke post_parent_in
med en rekke ID-er for å identifisere barna til en rekke innlegg eller sider.
Forstå wp_posts
bord og hva det lagrer er en viktig del av å forstå WordPress-databasen. Som du har sett, wp_posts
Tabellen brukes til å lagre innlegg, som inkluderer fem innebygde posttyper (inkludert Post), i tillegg til et hvilket som helst antall egendefinerte innleggstyper du legger til deg selv.
Tabellen lagrer også data om forhold mellom innlegg, i post_parent
felt.