Forstå og jobbe med innlegg i WordPress

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:

  • innlegg
  • brukere
  • kommentarer
  • lenker

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.

Definere innlegg

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!):

  • EN 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.
  • Innlegget er en innleggstype, brukt til blogginnlegg eller nyhetsartikler, avhengig av hvilken type nettsted du utvikler.

De wp_posts bordet er vist i bildet nedenfor.

Gir mening? Hvis ikke, les videre, vil alle bli tydelige!

Posttyper i WordPress

WordPress kommer med fem innleggstyper bygget inn:

  • Post
  • Side
  • Vedlegg
  • Revisjon
  • Navigasjonsmenyelement

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.

Forstå standard innleggstyper

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.

Forhold mellom innlegg

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:

  • foreldre og barnesider
  • revisjoner og innlegget de forholder seg til
  • vedlegg og innlegget de ble lastet opp til

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.

Sammendrag

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.