Hoe u uw eigen evenementenoverzicht maakt met behulp van aangepaste berichttypes [WordPress]

Hoe u uw eigen evenementenoverzicht maakt met behulp van aangepaste berichttypes [WordPress] / Wordpress en webontwikkeling

Een van de voordelen van het gebruik van WordPress is de enorme flexibiliteit. Versie 3 introduceerde het concept van Custom Post Types om de ingebouwde functionaliteit uit te breiden.

Laten we vandaag eens kijken wat u ermee kunt doen, en een snel praktisch voorbeeld van hoe u een afspraak kunt maken met behulp van een Aangepast berichttype genaamd Evenement.

Wat zijn aangepaste berichttypen?

Meestal bestaat een WordPress-blog uit drie soorten inhoud: blog posts, blogroll koppelingen, en statisch pagina's. De meesten van ons zijn bekend met het feit dat pagina's moeten worden gebruikt voor dingen zoals over mij of contactgegevens, terwijl reguliere berichten naar jouw adres gaan blog. Maar daarnaast, wat als je nog een speciale vorm van inhoud wilt toevoegen die niet echt in de chronologische volgorde van de blog past en zeker geen statische - zoals evenementen is? Dat is waar aangepaste berichttypes binnenkomen.

Een vrij algemeen verzoek voor club- of groepssites is om een ​​soort evenementenkalender te hebben. Een oplossing die kan worden toegepast, is om een ​​aparte categorie Events te maken en alles daarin te plaatsen. Het probleem hiermee is dat ze worden weergegeven in de tijdlijn van de hoofdblog en dat we de twee concepten echt moeten scheiden.

Laten we voor dat doel een nieuw berichttype maken met de naam event, dat zijn eigen aparte gedeelte van de beheerdersinterface heeft.

Maak een aangepast berichttype in WordPress

We doen dit door je themabestanden rechtstreeks aan te passen. Je zou hetzelfde effect kunnen bereiken via een plug-in, maar om het concept en de praktijk te demonstreren, is het gewoon makkelijker om ze direct te schrijven.

Open uw thema's functions.php bestand, opgeslagen in de themamap binnenin wp-content / themes. Voeg aan het einde van het bestand deze code toe:

 add_action ('init', 'events_init'); function events_init () $ args = array ('labels' => array ('name' => __ ('Events'), 'singular_name' => __ ('Event'),), 'public' => true, 'rewrite' => array ("slug" => "events"), 'ondersteunt' => array ('thumbnail', 'editor', 'title', 'custom-fields')); register_post_type ('events', $ args); 

Zorg ervoor dat u dit doet vóór de afsluitende php-tag. Neem even de tijd om de code te lezen, maar in feite is het gewoon om enkele eigenschappen aan te geven (zoals labels voor de interface), hoe de URL's (herschreven) moeten worden behandeld en welke specifieke functies dit posttype ondersteunt (in dit geval miniaturen, een inhoudeditor voor de beschrijving van het evenement, een titel van een evenement en aangepaste velden).

Dat is het, nu als u uw thema opslaat en uw blog opnieuw laadt, aangenomen dat u geen fouten heeft, ziet u nu een nieuw gedeelte over gebeurtenissen op uw beheerderszijbalk.

Voeg nu enkele voorbeeldevents toe en maak een aangepast veld met de naam 'datum' om aan te geven wanneer de gebeurtenis plaatsvindt.

Merk op dat we aangepaste velden moeten gebruiken om de werkelijke datum van de gebeurtenis te specificeren in plaats van de datum van het bericht, omdat de datum van het bericht is wanneer het zal worden gepubliceerd. Aangezien u vermoedelijk gebeurtenissen zou toevoegen die in de toekomst zullen plaatsvinden, zou het instellen van de publicatiedatum op de werkelijke evenementdatum zinloos zijn.

Als u de gebeurtenis op dit moment probeert te bekijken, wordt mogelijk een 404-fout weergegeven. Dit komt omdat WordPress uw Permalink-structuur moet regenereren om rekening te houden met dit nieuwe berichttype. Ga naar de Permalinks-instellingen pagina, zorg ervoor dat deze correct is ingesteld, omdat deze soms terug kan gaan naar de standaardwaarden en kan worden opgeslagen. Je zou nu het individuele evenement kunnen zien.

Creëer een speciale 'evenementenlijst' pagina, geordend op datum

Nu je al deze fantastische evenementen op je blog hebt staan, zou het leuk zijn om ze ergens te vermelden. Hiervoor maken we een speciale paginasjabloon, zodat u die pagina vervolgens kunt toevoegen aan uw normale menu-items naast Info of Contact.

Maak eerst een kopie van uw page.php of index.php als je er geen hebt. Hernoem het custom-events-template.php of iets dergelijks. Open het en voeg dit toe aan het begin van het bestand. Dit vertelt WordPress dat het een speciale paginasjabloon is, en laat je het selecteren in het dropdown-menu met sjablonen.

  

Zoek vervolgens de regel die er ongeveer zo uitziet:

  

en voeg er net voor dit aan toe:

  

Je zou vrij eenvoudig kunnen zien wat we hier doen als je de laatste tutorial hebt gevolgd over het maken van je eigen widgets - we hebben een nieuwe query gemaakt en deze simpelweg beperkt tot ons nieuwe evenement-berichttype.

Om deze speciale paginasjabloon te gebruiken, maakt u gewoon een nieuwe pagina, geeft u deze een naam, wat u maar wilt en kiest u de sjabloon in het vak met paginakenmerken. U hoeft geen inhoud aan deze pagina toe te voegen, publiceer en bekijk het gewoon. Met een beetje geluk worden uw evenementen weergegeven.

Laten we nog een aanpassing maken aan de zoekopdracht: om gebeurtenissen weer te geven in volgorde van de werkelijke datum van het evenement, in plaats van de datum waarop het evenement werd gepubliceerd. Om dit te doen, vervang de query door dit:

  

Het zou ook nuttig zijn om de datum voor de gebeurtenis in de eigenlijke post weer te geven. Voeg dit direct toe de inhoud(); functie in de sjabloon:

 ID, 'datum', waar); if ($ date) echo 'Dit evenement wordt gehouden:'. $ date; ?> 

Dat kleine fragment probeert de gebeurtenisdatum uit de meta te halen en weer te geven als deze bestaat.

Hier ziet u hoe het eindproduct eruit ziet op mijn nieuwe evenementenpagina, gesorteerd op datum en de datum van het evenement in de aanbieding:

Extra huiswerk

Toen we het type evenement hebben gemaakt, hebben we ondersteuning toegevoegd voor aanbevolen miniaturen. Gebruik de zelfstudie die ik de vorige keer heb geschreven om deze afbeelding te pakken en weer te geven in de lijst met gebeurtenissen.

Conclusie

Ik hoop dat dit je laat zien hoe eenvoudig het is om de WordPress-functionaliteit uit te breiden buiten de standaardposten en pagina's. Kun je andere berichttypen bedenken die je misschien zou willen gebruiken? Wat dacht je van 'asides' voor je sidebar als je iets te zeggen hebt, maar het is geen garantie voor een volledige post?

Laat me in ieder geval in de comments weten of je problemen hebt of dat je aangepaste berichttypen op je blog hebt geprobeerd, en zorg ervoor dat je de rest van de WordPress-zelfstudies op MakeUseOf.com bekijkt.

Ontdek meer over: WordPress-plug-ins.