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:
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.
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!):
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.De wp_posts
bordet visas i bilden nedan.
Vettigt? Om inte, läs vidare, kommer alla att bli tydliga!
WordPress kommer med fem posttyper inbyggda:
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
.
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.
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:
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.
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.