Så här skapar du dina egna händelser med hjälp av anpassade inläggstyper [WordPress]

Så här skapar du dina egna händelser med hjälp av anpassade inläggstyper [WordPress] / Wordpress & Webbutveckling

En av fördelarna med att använda WordPress är sin rena flexibilitet. Version 3 introducerade konceptet Anpassade posttyper för att utöka den inbyggda funktionaliteten.

Låt oss ta en titt idag om vad du kan göra med dem, samt ett snabbt praktiskt exempel på hur du skapar en händelselista med hjälp av en anpassad posttyp som heter Händelse.

Vad är anpassade posttyper?

Vanligtvis består en WordPress-blogg av tre typer av innehållsbloggar inlägg, blogroll länkar, och statisk sidor. De flesta av oss är bekant med att sidor ska användas för saker som om mig eller kontakt information, medan vanliga inlägg går till din blog. Men bortom det, vad händer om du vill lägga till en annan speciell typ av innehåll som inte riktigt passar in i kronologisk ordning för bloggen och är säkerligen inte statisk - som händelser? Det är där anpassade posttyper kommer in.

En ganska vanlig förfrågan på klubb- eller gruppwebbplatser är att ha någon slags händelsekalender. En lösning som kan tillämpas är att skapa en separat händelsekategori och bara posta allt där inne. Problemet med detta är att de kommer att visas på huvudbloggets tidslinje, och vi borde verkligen skilja de två koncepten helt.

För det ändamålet, låt oss skapa en ny posttyp som heter händelse, som kommer att ha sin egen separata del av admingränssnittet.

Skapa en anpassad posttyp i WordPress

Vi gör det genom att justera dina temafiler direkt. Du kan uppnå samma effekt genom ett plugin, men för att visa konceptet och träna är det bara enklare att skriva dem direkt.

Öppna ditt tema functions.php fil, lagrad i temalmappen inuti wp-content / teman. Lägg till den här koden i slutet av filen:

 add_action ('init', 'events_init'); funktionen events_init () $ args = array ('etiketter' => array ('name' => __ ('Events'), 'singular_name' => __ ('Event'), 'rewrite' => array ("slug" => "händelser"), 'support' => array ('thumbnail', 'editor', 'title', 'custom-fields')); register_post_type ('events', $ args); 

Var noga med att göra detta innan den stängande php-taggen. Ta ett tag att läsa över koden, men i huvudsak är det bara att deklarera några egenskaper (som etiketter för gränssnittet), hur webbadresserna (omskrivna) ska hanteras och vilka särskilda funktioner denna posttyp stöder (i detta fall miniatyrbilder, en innehållsredigerare för evenemangsbeskrivningen, en händelsetitel och anpassade fält).

Det är det, nu om du sparar ditt tema och laddar om din blogg, förutsatt att du inte har några fel bör du nu se en ny händelsessektion på din admin sidobar.

Lägg till några exempelhändelser nu och skapa ett anpassat fält som heter "datum" för att ange när händelsen är.

Observera att vi måste använda egna fält för att ange det aktuella datumet för händelsen i stället för datumet för inlägget, eftersom datumet för inlägget är när det kommer att publiceras. Eftersom du förmodligen skulle lägga till händelser som kommer att inträffa i framtiden skulle det vara värdelöst att publicera datumet till det aktuella händelsedatumet..

Om du försöker se händelsen vid denna tidpunkt kan du få ett 404-fel. Detta beror på att WordPress behöver regenerera din pendlingsstruktur för att ta hänsyn till denna nya posttyp. Gå över till Permalinks inställningar sidan, se till att den är korrekt inställd, eftersom den ibland kan gå tillbaka till standard och spara. Du borde nu kunna se det enskilda händelsepostet.

Skapa en speciell händelselista-sida, ordnad efter datum

Nu när du har alla dessa fantastiska händelser i din blogg, skulle det vara trevligt att faktiskt lista dem någonstans. Därför skapar vi en särskild sidmall, så du kan sedan lägga till den sidan till dina vanliga menyalternativ tillsammans med Om eller Kontakt.

Först, gör en kopia av din page.php eller index.php om du inte har en. Byt namn på det anpassade-events-template.php eller något liknande. Öppna den och lägg till den här till början av filen. Detta berättar om WordPress, det är en speciell sidmall och låter dig välja den i mallarna.

  

Följ sedan linjen som liknar detta:

  

och precis före det lägger du till det här:

  

Du borde kunna se ganska enkelt vad vi gör här om du följde den sista handledningen om att skapa egna widgets - vi har skapat en ny fråga och helt enkelt begränsat det till att vara vår nya händelseposttyp.

Om du vill använda den här speciella sidmallen skapar du bara en ny sida, namngiv den som du vill, och välj mallen från rutan Sidattribut. Du behöver inte lägga till något innehåll på den här sidan, bara publicera och visa det. Med lycka till kommer det att visa dina händelser.

Låt oss göra en ny anpassning till frågan - för att visa händelser i enlighet med det aktuella händelsedatumet, snarare än det datum händelsen publicerades. För att göra detta, ersätt frågan med följande:

  

Det skulle också vara till hjälp att visa datum för händelsen i den aktuella posten. Lägg till detta strax efter innehållet(); funktion i mallen:

 ID, "datum", sant); om ($ date) echo 'Den här händelsen kommer att hållas på:'. $ date; ?> 

Det lilla fragmentet försöker få tag på händelsedatumet från metan och visa det om det finns.

Så här ser slutprodukten på min nya händelsessida, sorterad efter datum och visar datum för händelsen i noteringen:

Extra hemläxa

När vi skapade händelseposttypen lade vi till stöd för miniatyrbilder. Använd handledningen jag skrev förra gången för att fånga och visa den här bilden på händelselistan.

Slutsats

Jag hoppas det här visar dig hur lätt det är att förlänga WordPress-funktionaliteten utöver de grundläggande inläggen och sidorna. Kan du tänka på andra posttyper som du kanske vill använda? Vad sägs om "sidor" för ditt sidofält när du har något att säga men det garanterar inte en fullständig post?

Hur som helst, låt mig veta i kommentarerna om du har problem eller har försökt anpassade posttyper på din blogg och se till att du kolla in resten av WordPress-handledningarna på MakeUseOf.com.

Utforska mer om: Wordpress-plugins.