Annonse

En av fordelene ved å bruke WordPress er dens rene fleksibilitet. Det er ikke bare for innlegg og sider: tilpassede innleggstyper kan utvide kjernefunksjonene til praktisk talt hva som helst.

La oss se på i dag hva du kan gjøre med tilpassede innleggstyper, i tillegg til et raskt praktisk eksempel på hvordan du oppretter en hendelsesliste ved hjelp av en tilpasset innleggstype som heter Begivenhet.

Merk: Denne opplæringen bør kun vurderes til utdannelsesmessige formål, slik at du kan lære koden som brukes til å lage tilpassede innleggstyper. Hvis du faktisk vil ha en flott plugin for hendelsesoppføringer for ditt WordPress-nettsted, kan du prøve Arrangementskalenderen, som er godt utviklet og gratis.

Hva er tilpassede innleggstyper i WordPress?

Et WordPress-nettsted består vanligvis av to typer innhold: daterte blogginnlegg og statiske sider. De fleste av oss som har sette opp en WordPress-blogg Konfigurer bloggen din med WordPress: The Ultimate GuideVil du starte din egen blogg, men vet ikke hvordan? Se på WordPress, den kraftigste bloggplattformen som er tilgjengelig i dag.

instagram viewer
Les mer er kjent med at sider skal brukes til ting som "Om meg" eller "Kontaktinformasjon", mens vanlige innlegg går til bloggen din.

Men utover det, hva om du vil legge til en annen spesiell type innhold som ikke virkelig passer inn i den kronologiske rekkefølgen på bloggen og absolutt ikke er statisk? Det er her tilpassede innleggstyper kommer inn.

En ganske vanlig forespørsel for klubb- eller gruppesider er å ha en slags hendelseskalender. En løsning som kan brukes, er å lage en egen kategori av kategorier av innlegg. Problemet med dette er at de vil vises i hovedtidsplanen for bloggen, og vi burde virkelig skille de to konseptene helt.

La oss lage et nytt innleggstype kalt hendelse for det formålet, som har sin egen separate del av admingrensesnittet.

Hvordan lage en tilpasset innleggstype i WordPress

Vi gjør dette ved å justere temafilene dine direkte. Du kan oppnå samme effekt gjennom en plugin, men for å demonstrere konseptet og praktisere er det bare lettere å skrive dem direkte. Hvis du ikke er komfortabel med å gjøre dette, kan du vurdere å bruke Min tilpassede funksjoner-plugin, som lar deg legge til kode ikke-destruktiv.

Mine tilpassede funksjoner

Åpne opp temaet ditt functions.php fil, lagret i temamappen inne wp-content / themes; eller bruk My Custom Functions-pluginen, som du finner på innstillinger > PHP Inserter. Legg til denne koden på slutten av filen:

add_action ('init', 'events_init'); function events_init () {$ args = array ('labels' => array ('name' => __ ('Events'), 'singular_name' => __ ('Event'),), 'public' => true, 'has_archive' => true, 'omskrive' => matrise ("slug" => "events"), 'supports' => matrise ('miniatyrbilde', 'redaktør', 'tittel', 'tilpassede felt')); register_post_type ('events', $ args); }

Sørg for å gjøre dette før den avsluttende php (?>) tag, hvis det er en i din functions.php fil.

Ta litt tid å lese over koden. Det erklærer noen egenskaper (som etiketter for grensesnittet), og hvordan nettadressene (omskrives) skal håndteres, samt hvilke funksjoner denne posttypen støtter. Du kan for eksempel legge til et tilpasset felt til den tilpassede posttypen din med støtteegenskapen.

I dette tilfellet har vi erklært at begivenhetstypen vår støtter miniatyrbilder, en innholdsredigerer for hendelsesbeskrivelsen, en begivenhetstittel og tilpassede felt. Vi har også lagt til has_archive, slik at ved å navigere til hendelsessiden vil du få opp et arkiv med alle hendelser, som ligner på en blogg.

Det er det, nå hvis du lagrer temaet ditt og laster inn bloggen din på nytt, forutsatt at du ikke har noen feil, bør du nå se en ny hendelsesdel på admin-sidefeltet. Jippi!

Legg merke til hvordan det nåværende temaet mitt drar full nytte av tilpassede innleggstyper for alle slags ekstra funksjoner i administratoren.

Legg til noen eksempler på hendelser nå.

To kjempeflott fester er lagt til på arrangementslisten!

Siden dette er en hendelse, oppretter du et tilpasset felt som heter Dato for å indikere når hendelsen vil skje. Bruk mm / dd / yyyy format.

Opprette et tilpasset datofelt for å vise når hendelsen faktisk skal skje

Legg merke til at vi må bruke egendefinerte felt for å spesifisere den faktiske datoen for hendelsen i stedet for datoen for innlegget, fordi datoen for innlegget representerer når innkallingen blir publisert. Siden du antagelig vil legge til hendelser som vil skje i fremtiden, vil det være ubrukelig å sette publiseringsdatoen til den faktiske begivenhetsdatoen.

Hvis du prøver å se hendelsen på dette tidspunktet, kan det hende du får en 404-feil. Dette er fordi WordPress trenger å regenerere URL-strukturen til Permalink for å gjøre rede for denne nye innleggstypen. Gå over til Innstillinger> Permalinks side, og trykk lagre igjen.

Du skal nå kunne se det enkelte begivenhetsinnlegg. Merk at den første delen av nettadressen, etter domenenavnet ditt, er /events/. Vi valgte dette i denne kodelinjen:

'omskrive' => matrise ("slug" => "hendelser"),

Tilpass hendelsesoppføringssiden

Nå som du har alle disse fantastiske begivenhetene i bloggen din, ville det være fint å faktisk liste dem et sted. For det oppretter vi en spesiell sidemal, slik at du deretter kan legge den siden til dine vanlige menyelementer ved siden av Om eller Kontakt.

Siden vi allerede har spesifisert at hendelsesposttypen skal ha et arkiv, kan du gå foran og se hva standard er ved å besøke /events/. På det standard tjue-sytten temaet på teststedet mitt, fikk jeg dette:

Arkivside som viser hendelser

Å tilpasse denne utdataen kommer til å avhenge av hvilket tema du bruker, og å dekke hele WordPress-templeringssystemet er godt utenfor rammen av denne artikkelen. Av hensyn til denne opplæringen vil jeg imidlertid anta at du bruker tjue-sytten.

Start med å lage en kopi av archive.php, og gi den nytt navn arkiv-events.php. Dette er en standard navnekonvensjon det betyr at WordPress automatisk vil bruke denne malen til å vise arkivet for hendelsesposttypen.

Ved å undersøke filen har de tjue sytten forfatterne gitt en postformatmekanisme, som er for komplisert for våre behov:

/* * Ta med den postformatspesifikke malen for innholdet. * Hvis du vil overstyre dette i et barn-tema, kan du ta med en fil. * kalt innhold -___. php (der ___ er navnet på postformatet) og som vil bli brukt i stedet. */ get_template_part ('mal-deler / innlegg / innhold', get_post_format ());

Merk: Et barn-tema anbefales siden eventuelle oppdateringer til det originale temaet vil overskrive endringene dine. Dette WordPress støtteartikkel beskriver prosessen med å lage et barnetema for tjue-sytten. For kortfattethet skal jeg bare jobbe med det originale temaet og ikke bry meg om arbeidet mitt går tapt i en senere oppdatering.

Klipp ut hele blokken, og lim inn følgende i stedet. Dette er bare en forenklet kopi av hva som finnes i postformatmaler, for å lære:

Hvis du lagrer og forhåndsviser forhåndsvisningssiden på nytt, vil du merke at den nå har datoer. Men de tar feil. De viser for øyeblikket publiseringsdatoen i stedet for hendelsesdatoen. Som et siste trinn, la oss endre det til den faktiske datoen arrangementet vil bli avholdt. Finn den biten som genererer tiden, twenty_seventeen_time_link (), og erstatt den med følgende:

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

Dette får datoen fra metafeltet vi har satt, og bruker deretter PHP Dato() funksjon for å formatere den til noe mer lesbar.

Arkiv med datoer

Neste skritt?

Hvis du ikke er fornøyd med din nåværende webhotell, anbefaler vi at du bruker en administrert WordPress-vert som WP-motor, som vi selv bruker til søstersidene våre. Ellers tilbyr InMotion Hosting rimelige planer, som er enda billigere med vår spesielle rabatt når du bruker denne lenken.

Legg deretter merke til at da vi opprettet typen hendelsesinnlegg, kodet vi allerede støtte for utvalgte miniatyrbilder. Bruk vår guide til med bilder og legg ut miniatyrbilder Den komplette guiden for utvalgte miniatyrer og bildestørrelser i WordPressHer er alt du trenger å vite om bildestørrelser i WordPress og administrere funksjoner. Les mer for å hente og vise et omtalt bilde i arkivet for hendelseslistene.

James har en BSc i kunstig intelligens, og er CompTIA A + og Network + sertifisert. Han er hovedutvikler av MakeUseOf, og bruker fritiden sin på å spille VR paintball og brettspill. Han har bygd pc-er siden han var liten.