Annons

En av fördelarna med att använda WordPress är dess stora flexibilitet. Det är inte bara för inlägg och sidor: anpassade inläggstyper kan utöka kärnfunktionerna till praktiskt taget vad som helst.

Låt oss titta idag på vad du kan göra med anpassade inläggstyper, såväl som ett snabbt praktiskt exempel på hur du skapar en händelselista med en anpassad inläggstyp som heter Händelse.

Notera: Denna handledning bör endast beaktas för utbildningsändamål, så att du kan lära dig koden som används för att skapa anpassade inläggstyper. Om du faktiskt vill ha ett fantastiskt plugin-program för händelser för din WordPress-webbplats kan du prova Händelsekalendern, som är väl utvecklad och gratis.

Vad är anpassade inläggstyper i WordPress?

Vanligtvis består en WordPress-webbplats av två typer av innehåll: daterade blogginlägg och statiska sidor. De flesta av oss som har sätta upp en WordPress-blogg Ställ in din blogg med WordPress: The Ultimate GuideVill du starta din egen blogg men inte vet hur? Se till WordPress, den mest kraftfulla bloggplattformen som finns tillgänglig idag. Läs mer

instagram viewer
känner till att sidor bör användas för saker som "Om mig" eller "Kontaktinformation", medan vanliga inlägg går till din blogg.

Men utöver det, vad händer om du vill lägga till en annan speciell typ av innehåll som inte riktigt passar in i den kronologiska ordningen på bloggen och verkligen inte är statisk? Det är där anpassade inläggstyper kommer in.

En ganska vanlig begäran för klubb- eller gruppsajter är att ha någon slags händelsekalender. En lösning som kan tillämpas är att skapa en separat händelsekategori av inlägg. Problemet med detta är att de kommer att visas i tidslinjen för bloggen och vi borde verkligen separera de två koncepten helt.

Låt oss för det ändamålet skapa en ny inläggstyp som kallas händelse, som kommer att ha sin egen separata del av admingränssnittet.

Hur man skapar en anpassad inläggstyp i WordPress

Vi gör detta genom att justera dina temafiler direkt. Du kan uppnå samma effekt genom ett plugin, men för att demonstrera konceptet och öva är det bara lättare att skriva dem direkt. Om du inte är bekväm att göra detta kan du överväga att använda Min anpassade funktioner plugin, som låter dig lägga till kod icke-förstörande.

Mina anpassade funktioner

Öppna ditt tema functions.php fil, lagrad i temamappen inuti wp-content / teman; eller använd plugin Mina anpassade funktioner som du hittar på inställningar > PHP Inserter. Lägg till denna kod i slutet av filen:

add_action ('init', 'events_init'); function events_init () {$ args = array ('labels' => array ('name' => __ ('Events'), 'singular_name' => __ ('Event'),), 'public' => true, 'has_archive' => true, 'omskriva' => array ("slug" => "events"), 'supports' => array ('miniatyrbild', 'redigerare', 'titel', 'anpassade fält')); register_post_type ('händelser', $ args); }

Se till att göra detta innan php stängs (?>) -tagg, om det finns en i din functions.php fil.

Ta lite tid att läsa över koden. Det förklarar vissa egenskaper (som etiketter för gränssnittet), och hur webbadresserna (omskrivningar) ska hanteras, samt vilka funktioner den här posttypen stöder. Du kan till exempel lägga till ett anpassat fält till din anpassade inläggstyp med egenskapen stöd.

I det här fallet har vi förklarat att vår händelsetyp ska stödja miniatyrbilder, en innehållsredigerare för händelsebeskrivningen, en händelsetitel och anpassade fält. Vi har också lagt till has_archive, så att du navigerar till händelsessidan kommer att skapa ett arkiv med alla händelser, liknande en blogg.

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 ett nytt händelseavdelning på din administratörssidefält. Jippie!

Lägg märke till hur mitt nuvarande tema drar full nytta av anpassade inläggstyper för alla slags extrafunktioner i administratören.

Lägg till några exempelhändelser nu.

Två fantastiska fester har lagts till i evenemangslistan!

Sedan detta är en händelse, skapa ett anpassat fält som heter datum för att indikera när händelsen kommer att inträffa. Använda sig av mm / dd / yyyy formatera.

Skapa ett anpassat datumfält för att visa när händelsen faktiskt kommer att inträffa

Observera att vi måste använda anpassade fält för att ange händelsens faktiska datum snarare än inläggets datum, eftersom inläggets datum representerar när meddelandet publiceras. Eftersom du antagligen skulle lägga till händelser som kommer att inträffa i framtiden, skulle det vara värdelöst att ställa publiceringsdatumet till det faktiska händelsedatumet.

Om du försöker visa händelsen vid denna tidpunkt kan du få ett 404-fel. Det beror på att WordPress måste återskapa din Permalink-URL-struktur för att redovisa den här nya inläggstypen. Gå över till Inställningar> Permalinks och tryck på spara igen.

Du bör nu kunna se det enskilda evenemangsposten. Observera att den första delen av webbadressen, efter ditt domännamn, är /events/. Vi valde detta i den här kodraden:

'rewrite' => array ("slug" => "events"),

Anpassa händelsens lista

Nu när du har alla dessa fantastiska händelser i din blogg, skulle det vara trevligt att lista dem någonstans. För det skapar vi en speciell sidmall, så att du sedan kan lägga till den sidan till dina vanliga menyalternativ bredvid About eller Contact.

Eftersom vi redan har angett att händelseposttypen ska ha ett arkiv kan du gå vidare och se vad standard är genom att besöka /events/. På det vanliga tjugo-sjutton temat på min testwebbplats fick jag detta:

Arkiv sida som visar händelser

Att anpassa denna utgång kommer att bero på vilket tema du använder, och att täcka hela WordPress-templeringssystemet ligger väl utanför denna artikel. Men för den här tutorialen kommer jag att anta att du använder tjugo-sjutton.

Börja med att skapa en kopia av archive.phpoch byta namn på den till arkiv-events.php. Det här är en standard namnkonvention det betyder att WordPress automatiskt kommer att använda den här mallen för att visa arkivet för händelseposttypen.

Vid granskningen av filen har de tjugo sjutton författarna tillhandahållit en mekanism för postformat, som är för komplex för våra behov:

/* * Inkludera den postformatspecifika mallen för innehållet. * Om du vill åsidosätta detta i ett barntema, inkludera sedan en fil. * kallas innehåll -___. php (där ___ är postformatnamnet) och det kommer att användas istället. */ get_template_part ('mall-delar / post / content', get_post_format ());

Obs! Ett barntema rekommenderas eftersom alla uppdateringar av det ursprungliga temat kommer att skriva över dina ändringar. Detta WordPress supportartikel beskriver processen för att skapa ett barntema för tjugo-sjutton. För korthet kommer jag bara att arbeta med det ursprungliga temat och bryr mig inte om mitt arbete går förlorat i en senare uppdatering.

Klipp ut hela blocket och klistra in följande istället. Detta är bara en förenklad kopia av vad som finns i dessa postformatmallar, för att lära sig:

Om du sparar och förhandsgranskar händelsessidan igen märker du att den nu har datum. Men de har fel. De visar för närvarande publiceringsdatum istället för händelsedatum. Som ett sista steg, låt oss ändra det till det faktiska datumet då evenemanget kommer att hållas. Hitta den bit som genererar tiden, twenty_seventeen_time_link (), och ersätt den med följande:

datum ('l jS F Y', strtotime (get_post_meta (get_the_ID (), 'date', true)))

Detta hämtar datumet från det metafält som vi ställer in och använder sedan PHP datum() funktion för att formatera det till något mer läsbart.

Arkiv med datum

Nästa steg?

Om du inte är nöjd med din nuvarande webbhotell rekommenderar vi starkt att du använder en hanterad WordPress-värd som WP-motor, som vi själva använder för våra systersidor. Annars erbjuder InMotion Hosting prisvärda planer, som är ännu billigare med vår specialrabatt när du använder den här länken.

Observera sedan att när vi skapade händelseposttypen kodade vi stöd för visade miniatyrer redan. Använd vår guide till presenterade bilder och lägg miniatyrer Den kompletta guiden för visade miniatyrer och bildstorlekar i WordPressHär är allt du behöver veta om bildstorlekar i WordPress och hantera presenterade bilder. Läs mer för att ta och visa en presenterad bild i arkivet med händelselistan.

James har en kandidatexamen i artificiell intelligens och är CompTIA A + och Network + certifierad. Han är ledande utvecklare av MakeUseOf och tillbringar sin fritid med att spela VR-paintball och brädspel. Han har byggt datorer sedan han var liten.