Förstå och arbeta med inlägg i WordPress

Liksom så många exempel på WordPress-terminologi kan termen "inlägg" vara förvirrande, eftersom det refererar till en posttyp och en innehållstyp som lagras i en specifik databas tabell. 

Här ska jag förtydliga skillnaden mellan de två och titta på posttyper i detalj.

I den föregående delen av denna serie undersökte jag de olika innehållstyperna i WordPress, som lagras i ett antal olika databastabeller. Dessa är:

  • inlägg
  • användare
  • kommentarer
  • länkar

I denna handledning granskar jag inlägg mer detaljerat och skisserar posttyperna, relationerna mellan dem och hur man förstår allt detta kan hjälpa dig att arbeta med dem.

Definiera inlägg

Först ska jag börja med att definiera inlägg och hur de skiljer sig från inlägg (ja det är förvirrande och att lägga till en bokstav gör inte saker så mycket tydligare!):

  • en posta är en innehållsartikel som lagras i wp_posts tabell. Var och en har a post_type tilldelas det, vilket kan vara posta, sida eller något annat.
  • Inlägget är en posttyp, som används för blogginlägg eller nyhetsartiklar beroende på vilken typ av webbplats du utvecklar.

De wp_posts bordet visas i bilden nedan.

Vettigt? Om inte, läs vidare, kommer alla att bli tydliga!

Posttyper i WordPress

WordPress kommer med fem posttyper inbyggda:

  • Posta
  • Sida
  • Bilaga
  • Revision
  • Navigationsmenyobjekt

Utöver detta kan du lägga till egna egna posttyper med hjälp av register_post_type () funktion, vilket betyder att din WordPress-installation kan ha så många posttyper som du vill. Varje posttyp har samma status som de inbyggda posttyperna - ibland har jag hört talas om att folk tycker att "anpassad posttyp" är en posttyp själv. Det är det inte!

Jag ska illustrera det med ett exempel. När du skriver en anpassad fråga för inlägg, lägger du till följande i fråga om dina frågor:

'post_type' => 'inlägg'

Men om du har skapat en anpassad posttyp som heter my_post_type, du skulle fråga det med följande:

'post_type' => 'my_post_type'

Du kan använda detta post_type argument för att fråga efter en posttyp, och du kan faktiskt fråga flera posttyper om du vill. Jag kommer inte att gå in på detaljer om det eftersom det ligger utanför ramen för denna handledning, men du kan läsa mer på WordPress Codex-sidan för WP_Query.

Förstå de vanliga posttyperna

Låt oss snabbt titta på var och en av de inbyggda posttyperna, hur de liknar varandra och hur de skiljer sig åt. Observera att i tabellen nedan använder jag termen post i generisk mening för att beskriva innehållet i alla posttyper.

Posttyp Används för anteckningar
Posta Blogginlägg eller liknande Core post-typ - listad på huvudblogsidan
Sida Statiska sidor Designad för att visas ensam - brukar inte användas i arkiv (även om de kan vara).
Sidor kan ha föräldrar som definieras med post_parent fält i posten för barnsidan.
Varje sida kan ha flera barn men endast en förälder.
Bilaga Dokument och bilder (som eventuellt inte kan bifogas ett inlägg) Media som laddas upp till ett inlägg kommer att ha ID för det här inlägget i dess post_parent fält. Bilder som laddas upp via Media-skärmen i instrumentpanelen kommer att ha det fältet tomt. De guid fält används för att lagra url i mediefilen.
Revision Individuella ändringar av varje inlägg Varje revision är kopplad till ett inlägg: ID av den posten lagras i revisionen post_parent fält.
Navigationsmenyobjekt Individuella navigeringsmenyalternativ Varje meny innehåller ett antal navigationsobjekt, som alla lagras som ett inlägg. De menu_order Fältet används för att lagra information om ordningen för navigeringsmenyobjekt och ytterligare data som mål och föräldra menyalternativ sparas som poster i wp_postmeta tabell.

Anpassade posttyper kan registreras för att fungera på samma sätt som någon av de inbyggda posttyperna (förutom bilaga), men standardvärdet är posta. Var och en av posttyperna har sitt eget gränssnitt.

Förhållanden mellan inlägg

Som du kan se från tabellen ovan, så post_parent Fältet är viktigt eftersom det lagrar information om relationer mellan olika inlägg. Dessa inkluderar:

  • föräldra- och barnsidor
  • revisioner och posten de relaterar till
  • bilagor och inlägget de laddades upp till

Du kan använda post_parent fält på olika sätt i dina frågor. Om du till exempel frågar efter sidor på en given sida, använder du följande, var ID är förlagets ID:

'post_parent' => 'ID'

Du kan använda en liknande fråga för att visa bilagor som är uppladdade till ett visst inlägg, eller du kan alternativt fråga efter bilagor utan förälder (dvs. de som laddas upp direkt till mediaskärmen i instrumentpanelen). 

För att göra detta skulle du använda följande argument:

'post_parent' => '0'

Det är mycket osannolikt att du någonsin behöver fråga om ändringar, eftersom du bara vill att besökare ska se ditt publicerade innehåll.

Du kan också använda post_parent_in med en rad ID-skivor för att identifiera barnen i en rad inlägg eller sidor.

Sammanfattning

Förstå wp_posts bord och vad det lagrar är en viktig del av att förstå WordPress-databasen. Som du har sett, den wp_posts bordet används för att lagra inlägg, som innehåller fem inbyggda posttyper (inklusive inlägg) samt ett antal anpassade posttyper du lägger till dig själv. 

I tabellen lagras också data om relationer mellan inlägg, i post_parent fält.