{"id":25158,"date":"2019-08-07T05:52:35","date_gmt":"2019-08-07T12:52:35","guid":{"rendered":"https:\/\/kinsta.com\/?p=49121"},"modified":"2023-08-10T09:40:31","modified_gmt":"2023-08-10T07:40:31","slug":"wordpress-custom-post-types","status":"publish","type":"post","link":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/","title":{"rendered":"Custom post types in WordPress: De alles-in-\u00e9\u00e9n-uitleg hoe je ze kunt maken \u00e9n gebruiken"},"content":{"rendered":"<p>Custom post types zijn een krachtige feature van WordPress. Door post types is WordPress niet alleen maar een eenvoudige <a href=\"https:\/\/kinsta.com\/nl\/onderwerpen\/contentstrategie\/\">bloggingtool<\/a>, maar een volledig <a href=\"https:\/\/kinsta.com\/blog\/content-management-system\/\">content management systeem<\/a>. Ze zorgen voor de onmiskenbare flexibiliteit die nodig is om een \u00e9cht mooie website te maken.<\/p>\n<p>Aan de andere kant kunnen WordPress custom post types ook voor verwarring zorgen: want wat zijn custom post types eigenlijk precies? Hoe verschillen ze van normale berichten en pagina&#8217;s? Hoe maak je ze? En als je eenmaal een custom post type hebt gemaakt, hoe wijs je deze dan toe aan je berichten, geef je ze weer op je site, en hoe slaat WordPress ze op?<\/p>\n<p>In dit artikel laat ik je precies zien wat WordPress custom post types doen en hoe ze werken. Ik vergelijk ze met de normale post types waarmee je al bekend bent, leer je hoe je ze kunt maken, en laat zien hoe je de templatebestanden van je thema kunt gebruiken om ze op je website weer te geven.<\/p>\n<p>Laten we beginnen!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2 id=\"what\">Wat zijn custom post types binnen WordPress?<\/h2>\n<p>Het is waarschijnlijk het makkelijkst om custom post types uit te leggen door eerst een algemener concept uit te leggen: de normale post types.<\/p>\n<p>Post types zijn manieren om verschillende soorten content te categoriseren binnen WordPress. Ik neem aan dat je al bekend bent met de twee meest voorkomende post types: berichten en pagina&#8217;s. Maar wat je misschien niet weet is dat WordPress ook enkele andere post types huisvest.<\/p>\n<h3>Post types die al bij WordPress inzitten<\/h3>\n<p>WordPress heeft in totaal zeven <a href=\"https:\/\/wordpress.org\/support\/article\/post-types\/\">post types<\/a>:<\/p>\n<ul>\n<li>Berichten<\/li>\n<li>Pagina&#8217;s<\/li>\n<li>Bijlagen<\/li>\n<li>Revisies<\/li>\n<li>Navigatiemenu&#8217;s<\/li>\n<li>Custom CSS<\/li>\n<li>Changesets<\/li>\n<\/ul>\n<p>Goede kans dat je nog nooit van changesets gehoord hebt. En wellicht ben je wel eens de woorden <a href=\"https:\/\/kinsta.com\/nl\/blog\/bewerken-wordpress-code\/\">custom CSS<\/a> tegengekomen binnen je website, maar realiseerde je je niet dat ook dit een post type is.<\/p>\n<p>Voor de meeste WordPress-gebruikers en -ontwikkelaars zijn de enige post types die relevant zijn de eerste vijf: berichten, pagina&#8217;s, bijlagen, revisies en navigatie-menu&#8217;s.<\/p>\n<p>Laten we deze allemaal wat beter bekijken zodat we ze beter begrijpen.<\/p>\n<h4>WordPress post types: Berichten<\/h4>\n<p>Het &#8220;bericht&#8221; is het post type dat je het meest zult gebruiken binnen WordPress. Berichten zijn dynamische content: zo ontworpen om vaak bijgewerkt te worden. Je kunt categorie\u00ebn en <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-tags\/\">tags<\/a> aan ze toewijzen, waardoor ze te zien zijn op verschillende <a href=\"https:\/\/kinsta.com\/nl\/blog\/archiveer-je-een-website\/\">archiefpagina&#8217;s<\/a>, en ze zijn ook te zien op je homepagina en blogpagina. Vaak bestaat het grootste deel van je content uit berichten.<\/p>\n<p><em>Noot: Binnen WordPress, kan &#8220;post&#8221; twee dingen betekenen. Binnen de database is een post een post van welk post type dan ook, dus dat zijn ook pagina&#8217;s, bijlagen en alle andere soorten. Maar wanneer de meeste mensen het hebben over posts, bedoelen ze de berichten van een blog (zoals dit artikel). Deze horen bij het post type &#8220;bericht&#8221;.<\/em><\/p>\n<h4>WordPress post types: Pagina&#8217;s<\/h4>\n<p>Als je al een WordPress-website hebt, zijn pagina&#8217;s het andere contenttype waar je al bekend mee bent. Het is statische content, ontworpen om langer rond te blijven hangen dan berichten, en om je informatie te geven over zaken die niet zo snel veranderen. Goede voorbeelden hiervan zijn <a href=\"https:\/\/kinsta.com\/nl\/contact\/\">contactgegevens<\/a> of de <a href=\"https:\/\/kinsta.com\/nl\/over-ons\/\">&#8220;over ons&#8221;<\/a> pagina van een bedrijf.<\/p>\n<p>Pagina&#8217;s kunnen geen categorie\u00ebn of tags hebben en zijn niet ontworpen om weergegeven te worden binnen archiefpagina&#8217;s. De meeste bezoekers zullen je pagina&#8217;s vinden via je navigatiemenu.<\/p>\n<p><em>Noot: Binnen internetjargon kan een pagina elk type pagina binnen je website betekenen. Toen het internet eerst ontwikkeld werd, bestond het uitsluitend uit <\/em><a href=\"https:\/\/kinsta.com\/blog\/wordpress-vs-static-html\/\"><em>statische content<\/em><\/a><em> die direct geprogrammeerd moest worden via het schrijven van HTML. Dus met &#8220;webpagina&#8221; kunnen allerlei verschillende soorten pagina&#8217;s op je website bedoeld worden, inclusief een statische pagina binnen WordPress-begrippen, een archiefpagina of een bericht. In dit artikel, als ik het heb over pagina&#8217;s, bedoel ik de pagina zoals we dat binnen WordPress bedoelen, dus een statische pagina (denk aan de contactpagina). Soms zal ik ook refereren aan archiefpagina&#8217;s, maar dat zijn geen pagina&#8217;s in zoverre dat je een pagina aanmaakt om ze op te slaan. WordPress doet dat namelijk al voor je.<\/em><\/p>\n<h4>WordPress post types: bijlagen<\/h4>\n<p>Een bijlage is een media-item dat ge\u00fcpload is naar je website. Binnen de <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-database\/\">WordPress database<\/a> is dat niet het media-bestand zelf, maar de data die ernaar verwijst. Elke bijlage zal dus een unieke ID en metadata hebben zoals de titel, omschrijving, alternatieve tekst, en meer.<\/p>\n<p>Elke bijlage heeft ook een eigen bijlage-pagina met een unieke URL. Je kunt de URL ervan vinden via het scherm waarin je de gegevens voor je bijlage bewerkt.<\/p>\n<figure id=\"attachment_49279\" aria-describedby=\"caption-attachment-49279\" style=\"width: 1855px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49279 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/gegevens-bijlagen-screen-1.png\" alt=\"Het scherm om de gegevens van bijlagen te bewerken bij WordPress\" width=\"1855\" height=\"876\"><figcaption id=\"caption-attachment-49279\" class=\"wp-caption-text\">Het scherm om de gegevens van bijlagen te bewerken bij WordPress<\/figcaption><\/figure>\n<p><a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-mediabibliotheek\/\">Bijlagen kunnen allerlei verschillende soorten uploads zijn<\/a>: afbeeldingen, video&#8217;s, pdf-bestanden, etc. Je kunt ze vinden en bewerken via het <strong>Media<\/strong>-item in het WordPress admin-menu, of je kunt ze direct naar de juiste pagina of bericht uploaden tijdens het bewerken van een pagina. Elke bijlage die je uploadt naar een bericht zal vervolgens beschikbaar worden voor bewerking via het <strong>Media<\/strong>-menu.<\/p>\n<h4>WordPress post types: Revisies<\/h4>\n<p>Nu zijn we aangekomen bij de meer obscure post types.<\/p>\n<p>Elke keer dat je een nieuwe versie opslaat van een bericht, pagina of bijlage of een custom post type, zal WordPress een revisie aanmaken om de specifieke versie van dat bericht te markeren.<\/p>\n<p>Je kunt de revisies van elk bericht en pagina binnen je site zien door naar het gerelateerde bewerkingsscherm te gaan en het<strong> Document<\/strong>-tabblad aan de rechterkant te openen. Hier krijg je een notificatie te zien die je vertelt hoeveel revisies er voor een bericht zijn. Hieronder zie je een screenshot van een bericht dat ik aan het bewerken ben, dat momenteel vijf revisies bevat.<\/p>\n<figure id=\"attachment_49123\" aria-describedby=\"caption-attachment-49123\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49123 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/revisies-in-het-bewerkingsscherm-1024x488.jpg\" alt=\"Revisies in het bewerkingsscherm van WordPress\" width=\"1024\" height=\"488\"><figcaption id=\"caption-attachment-49123\" class=\"wp-caption-text\">Revisies in het bewerkingsscherm van WordPress<\/figcaption><\/figure>\n<p>Als je niet de <a href=\"https:\/\/kinsta.com\/nl\/blog\/gutenberg-wordpress-editor\/\">Gutenberg-editor<\/a> gebruikt, kun je de revisies zien door naar de onderkant van het bewerkingsscherm te scrollen, waar je een lijst met revisies vindt:<\/p>\n<figure id=\"attachment_49125\" aria-describedby=\"caption-attachment-49125\" style=\"width: 971px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49125 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/revisions-in-post-editing-screen-non-Gutenberg.jpg\" alt=\"Lijst met revisies in het klassieke WordPress bewerkingsscherm\" width=\"971\" height=\"282\"><figcaption id=\"caption-attachment-49125\" class=\"wp-caption-text\">Lijst met revisies in het klassieke WordPress bewerkingsscherm<\/figcaption><\/figure>\n<p>Als je klikt op de box <strong>Revisies<\/strong>, ga je naar een scherm dat de laatste twee versies van je bericht laat zien. Van daaruit kun je de revisies bekijken en eventueel je bericht terugzetten naar een eerdere versie van het bericht.<\/p>\n<p>WordPress zal na verloop van tijd een hoop revisies van je website aanmaken, waardoor je database er vol mee zal komen te staan (lees hier het advies van Kinsta over <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-revisies\/\">hoe je revisies in moet stellen om betere prestaties te krijgen<\/a><u>!)<\/u>. Revisies zijn dus een post type net als elk ander, en ze worden op dezelfde manier opgeslagen, waarover zo direct meer.<\/p>\n<h4>WordPress post types: Navigatiemenu&#8217;s<\/h4>\n<p>Navigatie-menu&#8217;s, of preciezer, de items binnen je navigatiemenu, zijn ook een post type.<\/p>\n<p>Elk item in je navigatie-menu wordt opgeslagen als een apart item binnen je database. Dankzij de metadata weet WordPress dat het om een item voor een navigatiemenu gaat, waar het precies binnen het navigatiemenu moet verschijnen, en waar het naartoe linkt.<\/p>\n<p>Je kunt navigatie-items niet op dezelfde manier bewerken als andere post types. Je moet ze bewerken via de Customizer of via het Menu\u2019s-pagina.<\/p>\n<h4>WordPress post types: Custom CSS<\/h4>\n<p>Als je je <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-css\/\">eigen CSS toevoegt<\/a> via de Customizer, zal je werk worden opgeslagen via dit custom post type. Een nieuw bericht (van het post type &#8220;custom CSS&#8221;) zal opgeslagen worden voor de custom CSS voor elk thema binnen je website, en WordPress zal alleen dat bestand gebruiken dat gerelateerd is aan het huidige actieve thema.<\/p>\n<h4>WordPress post types: Changesets<\/h4>\n<p>Changesets zijn ongeveer net als revisies, maar ze hebben betrekking op de Customizer in plaats van op berichten. Wanneer je een verandering doorvoert binnen de Customizer, zal het opgeslagen worden als een changeset, vergelijkbaar zoals dat bij een concept-bericht zou gebeuren.<\/p>\n<p>Nu we het hele spectrum van WordPress post types afgegaan zijn, kunnen we dieper ingaan op de custom post types van WordPress.<\/p>\n<h2 id=\"difference\">Het verschil tussen een normaal bericht en een custom post type<\/h2>\n<p>Nog even snel samenvatten: een \u201cpost\u201d kan dus twee dingen betekenen.<\/p>\n<p>Een post type kan een type bericht zijn in de bredere zin van het woord, waar een bepaald stukje content toe behoort. In de Engelse versie van WordPress heet dit een \u201cpost\u201d, wat voor verwarring zorgt. In het Nederlands heet dit een \u201cbericht\u201d. Daarnaast is een bericht zelf ook een post type, net als &#8220;pagina&#8221;, &#8220;bijlage&#8221; of een custom post type dat je zelf aanmaakt (ik weet dat het verwarrend is, maar ik leg het zo wat verder uit).<\/p>\n<p>Als je wel zelf een eigen custom post type aanmaakt, dan is dit dus geen \u201cbericht\u201d, het post type dat je normaal gebruikt voor het schrijven van je blogartikelen. Het is een post type die net als andere post types worden opgeslagen in de database.<\/p>\n<h3>WordPress custom post types: Veelvoorkomende toepassingen<\/h3>\n<p>Nu weten we wat een custom post type is. Maar wanneer zou je er \u00e9\u00e9n moeten gebruiken? Het antwoord is: elke keer wanneer je content toevoegt aan je website die niet in \u00e9\u00e9n van de standaard post types past.<\/p>\n<p>Enkele veelvoorkomende voorbeelden van custom post types zijn:<\/p>\n<ul>\n<li>Producten van een <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ecommerce-plugins\/\">webshop<\/a>.<\/li>\n<li><a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-portfolioplugins\/\">Portfolio-items<\/a> of projecten op een <a href=\"https:\/\/kinsta.com\/nl\/blog\/portfoliowebsite\/\">portfolio-website<\/a>.<\/li>\n<li>Kaarten voor een <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-google-maps\/\">kaartenwebsite<\/a>.<\/li>\n<li>Evenementen voor een <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-plugins-voor-reserveringen\/\">boekingswebsite<\/a>.<\/li>\n<\/ul>\n<p>Dit zijn een aantal van de meest voorkomende toepassingen, maar er zijn er natuurlijk nog veel meer mogelijk. Mijn advies bij het afwegen of je een custom post type moet gebruiken voor een nieuw stuk content is om jezelf het volgende af te vragen:<\/p>\n<blockquote><p><em>Wil ik mijn nieuwe content laten zien binnen mijn hoofdblog, als een statische pagina, of wil ik het laten zien binnen een aparte archiefpagina?<\/em><\/p><\/blockquote>\n<p>In sommige gevallen is het genoeg om een categorie toe te wijzen aan je nieuwe content om het makkelijk te kunnen filteren van de rest van je content. Bijvoorbeeld als je een blog hebt en je <a href=\"https:\/\/kinsta.com\/nl\/klanten\/\">casestudy wilt opnemen<\/a> die je een eigen (archief)pagina wil geven. Dit kan je doen door een &#8220;Casestudy&#8221; categorie aan te maken. Maar als je je nieuwe content volledig apart wilt houden van je normale blogberichten, is het verstandig om er een apart post type voor aan te maken.<\/p>\n<h3>Hoe post types opgeslagen worden door WordPress<\/h3>\n<p>De inhoud van een custom post type wordt op dezelfde manier opgeslagen als standaard berichten (en pagina\u2019s etc.). Laten we dit wat beter bekijken.<\/p>\n<p>Je WordPress-website heeft een aantal database-tabellen (ENG: tables) om content en instellingen in op te slaan. Het minimumaantal tabellen is 12, maar je website kan er meer hebben als het <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-multisite-complete-gids\/\">Multisite<\/a> gebruikt of als je een plugin hebt die meer tabellen gebruikt.<\/p>\n<figure id=\"attachment_49126\" aria-describedby=\"caption-attachment-49126\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49126 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/database-tables-1024x355.jpg\" alt=\"WordPress database-tables\" width=\"1024\" height=\"355\"><figcaption id=\"caption-attachment-49126\" class=\"wp-caption-text\">WordPress database-tables<\/figcaption><\/figure>\n<p>In het screenshot hierboven zie je twee tabellen die eruitzien alsof ze met berichten te maken hebben: wp_posts en wp_postmeta.<\/p>\n<p>De wp_posts tabel slaat alle content van je berichten op, van alle post types. Het maakt dus niet uit of we het hebben over een blogbericht, een pagina, een revisie, bijlage of custom post type: het wordt allemaal opgeslagen in de wp_posts tabel.<\/p>\n<p>WordPress weet welk post type elk bericht heeft omdat het een waarde toewijst binnen de post_type kolom in de wp_posts tabel. Die waarde komt overeen met het post type. Wanneer je dus een nieuw blogbericht toevoegt, zal WordPress een bericht toevoegen aan de wp_posts table, met als post_type &#8220;post.&#8221; En als je een custom post type toevoegen met de naam &#8220;product,&#8221; dan zal elk product dat je aanmaakt een regel in de wp_posts table krijgen met &#8220;product&#8221; als waarde in het post_type veld.<\/p>\n<p>De wp_postmeta tabel is voor het opslaan van metadata van je berichten, zoals de naam doet vermoeden. Het heeft vier velden:<\/p>\n<ul>\n<li>meta_id: het id van dit item in de wp_postmeta tabel.<\/li>\n<li>post_id: het id van de specifieke post waar dit item met metadata over gaat. Een bericht kan meerdere regels beslaan binnen de wp_postmeta table.<\/li>\n<li>meta_key: de index voor dit specifieke type metadata. Een statische pagina bijvoorbeeld, kan als mogelijke index hebben page_template, waarmee wordt geregistreerd welk sjabloon voor die pagina wordt gebruikt.<\/li>\n<li>meta_value: de daadwerkelijke waarde voor het veld. Als we weer een pagina als voorbeeld nemen, zal de meta_value hier &#8220;default&#8221; zijn als we het standaard sjabloon gebruiken.<\/li>\n<\/ul>\n<p>Verschillende soorten metadata worden dus opgeslagen voor een bericht, afhankelijk wat voor post type het is.<\/p>\n<p>Je hoeft niet al te hard na te denken over welke data opgeslagen wordt binnen wp_posts en elke in wp_postmeta, maar het is handig om te begrijpen dat alle post types op dezelfde plek opgeslagen worden. Dit betekent namelijk dat WordPress ze allebei op min of meer dezelfde manier verwerkt.<\/p>\n<h3>De relatie tussen custom post types en custom taxonomie\u00ebn en custom velden<\/h3>\n<p>Voordat we verder kijken hoe je een custom post type kunt aanmaken in WordPress, laten we eerst kijken hoe een custom post type samenwerkt met andere custom content types, zoals <a href=\"https:\/\/kinsta.com\/blog\/what-is-taxonomy\/\">custom taxonomie\u00ebn<\/a> en custom velden.<\/p>\n<h4>Custom taxonomie\u00ebn<\/h4>\n<p>Taxonomie\u00ebn worden bij WordPress gebruikt om berichten van alle post types te categoriseren. Voor standaard berichten zijn de twee gebruikte taxonomie\u00ebn categorie\u00ebn en tags.<\/p>\n<p>Wanneer je je custom post type registreert, kunt je kiezen om <a href=\"https:\/\/kinsta.com\/blog\/what-is-taxonomy\/\">een bestaande taxonomie<\/a> eraan toe te wijzen. Je kunt de &#8220;category&#8221; taxonomie eraan toevoegen wanneer je de taxonomie registreert. Ik zal je zo laten zien hoe je dat doet bij de demonstratie van het registreren van een custom post type.<\/p>\n<p>Je kunt ook volledig nieuwe taxonomie\u00ebn aanmaken voor je custom post type, wat vaak gedaan wordt.<\/p>\n<p>Als je dus bijvoorbeeld een <a href=\"https:\/\/kinsta.com\/nl\/blog\/conversies-op-je-woocommerce-productpaginas\/\">&#8220;product&#8221; post type aanmaken voor een e-commercewebsite<\/a>, kun je een &#8220;afdeling&#8221; taxonomie maken zodat je eenvoudig je producten kunt sorteren op afdeling binnen je winkel.<\/p>\n<p>Als je een <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-evenementen-plugins\/\">&#8220;evenement&#8221; post type maakt<\/a>, zou je een taxonomie met &#8220;soort evenement&#8221; kunnen maken waarmee je bijvoorbeeld kunt aangeven dat het gaat om een concert, musical, of comedy-avond.<\/p>\n<p>De taxonomie\u00ebn kun je zelf aanmaken zoals je wilt, en zullen afhangen van de manier waarop je je berichten wilt kunnen weergeven en sorteren.<\/p>\n<h4>Custom velden<\/h4>\n<p>Een ander custom content type binnen WordPress zijn custom velden, ook wel post metadata genoemd. Custom velden zijn additionele metadata die je kunt toevoegen aan een post, mits het post type dit ondersteunt. Wanneer je een custom post type registreert, kun je zo custom velden ondersteunen:<\/p>\n<pre><code class=\"language-php\">supports =&gt; array( \u2018custom-fields\u2019 );<\/code><\/pre>\n<p>Dit wordt doorgevoerd als een array zodat je <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/register_post_type#Arguments\">verschillende opties kunt gebruiken<\/a>.<\/p>\n<p>Als je dus metadata voor je custom post type wilt toevoegen, bijvoorbeeld maat of kleuren binnen een klerenwinkel binnen het &#8220;product&#8221; post type, kun je een custom veld gebruiken om dat te doen.<\/p>\n<p>Custom velden zijn anders dan custom taxonomie\u00ebn, omdat je ze niet kan gebruiken om een archiefpagina aan te maken.<\/p>\n<p>Bekijk hier een voorbeeld voor een kledingwinkel. Je zou een archiefpagina kunnen willen voor elk voorbeeld van een &#8220;afdeling&#8221; taxonomie, zoals &#8220;Heren&#8221;, &#8220;Dames&#8221;, etc. Stel je nu voor dat je ook een custom veld hebt dat &#8220;Maat&#8221; heet. Je zou geen archiefpagina willen maken voor elke maat, aangezien je klanten daar niet naar zoeken.<\/p>\n<p>Volg dus deze regel om te bepalen of je een custom taxonomie of custom veld nodig hebt: zul je dat stukje data nodig hebben om je berichten weer te geven op een archiefpagina?<\/p>\n<p>Ik zal je later laten zien hoe je archiefpagina&#8217;s maakt voor je custom post types en custom taxonomie\u00ebn.<\/p>\n<h2 id=\"plugin\">Zo voeg je een custom post type toe via een plugin<\/h2>\n<p>Nu je weet wat custom post types zijn en of je er \u00e9\u00e9n nodig hebt voor de je website is de volgende vraag: hoe voeg je dit toe?<\/p>\n<p>Er zijn twee manieren: door een plugin te gebruiken, of door het handmatig te programmeren. Laten we beginnen met de plugin.<\/p>\n<p>Er zijn twee soorten plugins die je kunt gebruiken om een custom post type toe te voegen: de eerste soort registreert een custom post type om bepaalde functionaliteiten &#8211; die nodig zijn om de plugin te laten werken &#8211; aan je website toe te voegen. De tweede soort biedt je een interface waarmee je zelf je eigen post types kunt maken.<\/p>\n<p>Denk bij de eerste soort aan plugins als e-commerce-plugins, evenementplugins en meer. Laten we beginnen met \u00e9\u00e9n van de bekendste WordPress-plugins, <a href=\"https:\/\/kinsta.com\/nl\/blog\/woocommerce-handleiding\/\">WooCommerce<\/a>.<\/p>\n<h3>Zo gebruik je WooCommerce om een custom post type te registreren<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/nl\/blog\/woocommerce-handleiding\/\">WooCommerce<\/a> is een goed voorbeeld van een plugin dat een custom post type aanmaakt om zelf goed te kunnen werken. In dit geval is dat het &#8220;product&#8221; post type.<\/p>\n<figure id=\"attachment_49127\" aria-describedby=\"caption-attachment-49127\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49127 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/woocommerce-producten-1024x483.jpg\" alt=\"Producten bij WooCommerce\" width=\"1024\" height=\"483\"><figcaption id=\"caption-attachment-49127\" class=\"wp-caption-text\">Producten bij WooCommerce<\/figcaption><\/figure>\n<p>WooCommerce registreert daarnaast een aantal custom taxonomie\u00ebn en custom velden waarmee je je winkel kunt organiseren, zoals productcategorie\u00ebn en product tags. Deze zijn anders dan de categorie\u00ebn en tags die je zou gebruiken voor je blogberichten.<\/p>\n<h3>Zo gebruik je de Events Calendar Plugin om een custom post type te registreren<\/h3>\n<p>De <a href=\"https:\/\/kinsta.com\/blog\/wordpress-events\/#1-the-events-calendar\">Events Calendar<\/a> plugin is nog een ander voorbeeld van een plugin die een custom post type aanmaakt. In dit geval is dat het &#8220;event&#8221; post type.<\/p>\n<figure id=\"attachment_49128\" aria-describedby=\"caption-attachment-49128\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49128 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/events-calendar-1-1024x322.jpg\" alt=\"Evenementen aangemaakt door de Events Calendar plugin\" width=\"1024\" height=\"322\"><figcaption id=\"caption-attachment-49128\" class=\"wp-caption-text\">Evenementen aangemaakt door de Events Calendar plugin<\/figcaption><\/figure>\n<p>De plugin voegt ook een taxonomie toe speciaal voor evenementen: \u201devent category\u201d. Het past ook normale tags toe op je evenementen, zodat je dezelfde tags kunt gebruiken als bij je blogberichten.<\/p>\n<h3>Zo gebruik je WP Google Maps om een custom post type te registreren<\/h3>\n<p>Net als WooCommerce en The Events Calendar is <a href=\"https:\/\/wordpress.org\/plugins\/wp-google-maps\/\">WP Google Maps<\/a> een <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-plugins-kaarten\/\">WordPress kaarten plugin<\/a> die een custom post type registreert voor je kaarten.<\/p>\n<figure id=\"attachment_49129\" aria-describedby=\"caption-attachment-49129\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49129 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/wp-google-maps-1-1024x588.jpg\" alt=\"Een kaart gemaakt met WP Google Maps plugin\" width=\"1024\" height=\"588\"><figcaption id=\"caption-attachment-49129\" class=\"wp-caption-text\">Een kaart gemaakt met WP Google Maps plugin<\/figcaption><\/figure>\n<p>Het &#8220;map&#8221; post type werkt wat anders dan de product of event post types in de vorige plugins, omdat je geen archiefpagina van al je kaarten zou weergeven. In plaats daarvan geeft de plugin je een shortcode voor elke kaart die je maakt, die je aan een bericht of pagina kunt toevoegen. Maar alhoewel je kaarten niet op dezelfde manier als andere post types gebruikt, is het nog steeds een post type.<\/p>\n<h3>Zo gebruik je de Custom Post Type UI Plugin<\/h3>\n<p>Als je je eigen custom post type wilt aanmaken in plaats van \u00e9\u00e9n te gebruiken die hoort bij een plugin zoals WooCommerce, kun je een plugin gebruiken die je een interface biedt waarmee je makkelijk je eigen post type kunt toevoegen.<\/p>\n<p>Een voorbeeld van zo&#8217;n plugin is de <a href=\"https:\/\/www.wordpress.org\/plugins\/custom-post-type-ui\/\">Custom Post Type UI<\/a> plugin.<\/p>\n<figure id=\"attachment_49130\" aria-describedby=\"caption-attachment-49130\" style=\"width: 1015px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49130 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/custom-post-type-ui-1.jpg\" alt=\"De Custom Post Type UI plugin\" width=\"1015\" height=\"664\"><figcaption id=\"caption-attachment-49130\" class=\"wp-caption-text\">De Custom Post Type UI plugin<\/figcaption><\/figure>\n<p>De plugin laat je je eigen post type aanmaken via de adminpagina\u2019s, zonder dat je zelf code hoeft te schrijven.<\/p>\n<p>De plugin geeft je een aantal vensters waarin je alle elementen van een post type kunt registreren die je normaal in de <code>register_post_type()<\/code> functie zou toevoegen. Om een nieuw post type met de plugin toe te voegen, ga je naar <strong>CPT UI &gt; Add\/Edit Post Types<\/strong>.<\/p>\n<figure id=\"attachment_49131\" aria-describedby=\"caption-attachment-49131\" style=\"width: 1018px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49131 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/toevoegen-post-type-with-CPT-UI.jpg\" alt=\"Toevoegen van een post type met de Custom Post Type UI plugin\" width=\"1018\" height=\"646\"><figcaption id=\"caption-attachment-49131\" class=\"wp-caption-text\">Toevoegen van een post type met de Custom Post Type UI plugin<\/figcaption><\/figure>\n<p>Vanaf daar kun je een nieuw post type toevoegen of een bestaande bewerken.<\/p>\n<p>Je kunt de instellingen voor het post type bewerken of alles op de standaardinstellingen laten staan. Je kunt de volledige documentatie van alle <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/register_post_type#Parameters\">instellingen en opties voor een post type<\/a> vinden in de WordPress Codex.<\/p>\n<figure id=\"attachment_49132\" aria-describedby=\"caption-attachment-49132\" style=\"width: 1012px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49132 size-full\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/CPT-UI-instellingen.jpg\" alt=\"Instellingen voor de Custom Post Type UI plugin\" width=\"1012\" height=\"675\"><figcaption id=\"caption-attachment-49132\" class=\"wp-caption-text\">Instellingen voor de Custom Post Type UI plugin<\/figcaption><\/figure>\n<p>Je kunt de plugin ook gebruiken om een custom taxonomie aan te maken en die aan je nieuwe post type toe te wijzen, of een ander reeds bestaand post type. En wanneer je de plugin gebruikt om een nieuw post type te maken, kun je ook al bestaande taxonomie\u00ebn eraan toewijzen.<\/p>\n<h3>Zo gebruik je de Pods Plugin om een custom post type aan te maken<\/h3>\n<p>De <a href=\"https:\/\/www.wordpress.org\/plugins\/pods\/\">Pods<\/a> plugin is een andere plugin die je een interface biedt om een nieuw custom post type te maken zonder dat je zelf code hoeft te schrijven.<\/p>\n<p>Pods biedt je ook de mogelijkheid om al bestaande post types uit te breiden. Zo kun je bijvoorbeeld extra velden of taxonomie\u00ebn toevoegen en de instellingen ervan aanpassen.<\/p>\n<figure id=\"attachment_49133\" aria-describedby=\"caption-attachment-49133\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49133 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/pods-1-1024x617.jpg\" alt=\"Maken van post types met de Pods plugin\" width=\"1024\" height=\"617\"><figcaption id=\"caption-attachment-49133\" class=\"wp-caption-text\">Maken van post types met de Pods plugin<\/figcaption><\/figure>\n<p>De Pods plugin gebruikt een post type (&#8220;pod&#8221;) om al je aanpassingen op te slaan, en laat je ook je eigen post types aanmaken, ongeveer net als de Custom Post Type UI plugin, maar dan met een interface die je meer aan de hand neemt tijdens het proces. Dat maakt het dus wat makkelijker, maar het nadeel is dat de plugin meer code toevoegt aan je website (en meer data aan je database) dan wanneer je het zelf zou programmeren.<\/p>\n<p>Als je liever geen bestaande plugin gebruikt, kun je gelukkig zelf ook custom post types programmeren.<\/p>\n<h2 id=\"register\">How to Register Your Own Custom Post Type in WordPress<\/h2>\n<p>Als je er niet voor terugdeinst\u00a0 om zelf code te schrijven, kun je de <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/register_post_type\"><code>register_post_type()<\/code><\/a> functie gebruiken om je eigen post type aan te maken. Dit is de meest effici\u00ebnte manier om het te doen.<\/p>\n<p>Uit ervaring weten we dat het beter is om code voor een custom post type toe te voegen via een plugin, dan rechtstreeks je thema aan te passen. De reden hiervoor simpel: wanneer je je thema in de toekomst verandert, dan behoudt je je post types samen met alle berichten die je met dat type hebt gemaakt. Hetzelfde geldt voor wanneer je je thema moet updaten.<\/p>\n<p>Laten we de stappen doornemen om je eigen custom post type aan te maken bij WordPress.<\/p>\n<h3>Het maken van je plugin<\/h3>\n<p>Allereerst moet je je plugin aanmaken. In de wp-content\/plugins map van je <a href=\"https:\/\/kinsta.com\/nl\/docs\/wordpress-hosting\/testomgeving\/\">ontwikkelings- of testwebsite<\/a> (dus nog niet je live website) voeg je een map toe voor je plugin. Binnen die map voeg je een PHP-bestand toe. Ik noem de mijne kinsta-register-posttype.php.<\/p>\n<p><em>Tip: Ik maak zelf altijd graag een plugin aan binnen een map in plaats van direct een plugin-bestand toe te voegen aan de wp-content\/plugins map. Op die manier, wanneer ik meer bestanden toevoeg aan mijn plugin, zoals scripts, styles of andere bestanden, kan ik die meteen in dezelfde map zetten.<\/em><\/p>\n<p>Binnen je nieuwe php-bestand, voeg je de volgende tekst toe als commentaar bij je plugin:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/*\nPlugin Name: Register Custom Post Types\nPlugin URI: http:\/\/rachelmccollin.com\nDescription: Plugin to register the book post type\nVersion: 1.0\nAuthor: Rachel McCollin\nAuthor URI:<a href=\"http:\/\/rachelmccollin.com\/\">http:\/\/rachelmccollin.com<\/a>\nTextdomain: kinsta\nLicense: GPLv2\n*\/<\/code><\/pre>\n<p>Dit geeft WordPress (en de gebruiker) de belangrijkste informatie over de plugin:<\/p>\n<ul>\n<li>Hoe de plugin heet<\/li>\n<li>Waar je meer informatie kunt vinden<\/li>\n<li>Wat de plugin doet<\/li>\n<li>Het versienummer<\/li>\n<li>Wie de plugin heeft ontwikkeld en waar je meer informatie over de ontwikkelaar kunt vinden<\/li>\n<li>Het tekstdomein voor internationalisering<\/li>\n<li>De licentie, <a href=\"https:\/\/kinsta.com\/nl\/blog\/is-wordpress-gratis\/\">die altijd GPL moet zijn<\/a>.<\/li>\n<\/ul>\n<p>Je plugin is nu dus klaargezet, en als je wilt kun je het meteen activeren in je beheerderpagina\u2019s (ook al doet de plugin nog niets).<\/p>\n<h3>Instellen van de functie voor je post type<\/h3>\n<p>Laten we nu de functie maken waarmee je je post type registreert. In mijn voorbeeld ga ik een post type maken met de naam &#8220;book&#8221;, voor een denkbeeldige website voor boekreviews. Wat je in jouw geval gebruikt, hangt natuurlijk af van waarvoor je jouw custom post type wil gebruiken.<\/p>\n<p>Onder de tekst die als commentaar gemarkeerd is, voeg je dit toe:<\/p>\n<pre><code class=\"language-php\">function kinsta_register_post_type() {\n\n}\nadd_action( 'init', 'kinsta_register_post_type' );<\/code><\/pre>\n<p>Deze functie bevat alle code voor je custom post type. Je wilt wellicht de naam veranderen en ander voorvoegsel dan kinsta_ gebruiken. Het is goed gebruik om een prefix op al je functie te zetten zodat ze niet dezelfde naam krijgen als een functie van een ander thema of andere plugin.<\/p>\n<p>De rest van de code komt binnen de haken van deze functie.<\/p>\n<h3>Defini\u00ebren van de labels van je custom post type<\/h3>\n<p>Nu gaan we de labels voor je custom post type defini\u00ebren. Voeg binnen de krulhaken dit toe:<\/p>\n<pre><code class=\"language-php\">$labels = array(\n 'name' =&gt; __( \u2018Books\u2019, \u2018kinsta\u2019 ),\n 'singular_name' =&gt; __( 'Book', \u2018kinsta\u2019 ),\n 'add_new' =&gt; __( 'New Book', \u2018kinsta\u2019 ),\n 'add_new_item' =&gt; __( 'Add New Book', \u2018kinsta\u2019 ),\n 'edit_item' =&gt; __( 'Edit Book', \u2018kinsta\u2019 ),\n 'new_item' =&gt; __( 'New Book', \u2018kinsta\u2019 ),\n 'view_item' =&gt; __( 'View Books', \u2018kinsta\u2019 ),\n 'search_items' =&gt; __( 'Search Books', \u2018kinsta\u2019 ),\n 'not_found' =&gt;\u00a0 __( 'No Books Found', \u2018kinsta\u2019 ),\n 'not_found_in_trash' =&gt; __( 'No Books found in Trash', \u2018kinsta\u2019 ),\n);<\/code><\/pre>\n<p>Je zult de naam moeten veranderen als je een ander type dan &#8220;book&#8221; als custom post type wilt. Er zijn <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/register_post_type\">meer labels<\/a> die je kunt gebruiken, maar in mijn ervaring zijn de bovenstaande meestal genoeg.<\/p>\n<p>Let op dat ik <a href=\"https:\/\/codex.wordpress.org\/I18n_for_WordPress_Developers\">internationalization<\/a> in mijn labels gebruik, dus ze zullen vertaald worden naar de lokale taal van een gebruiker.<\/p>\n<h3>Defini\u00ebren van de argumenten van je custom post type<\/h3>\n<p>De volgende stap is het defini\u00ebren van de argumenten. E\u00e9n van de argumenten is de array met labels die we al toegevoegd hebben.<\/p>\n<p>Onder de labels, en nog steeds binnen de haken, voeg je dit toe:<\/p>\n<pre><code class=\"language-php\">$args = array(\n 'labels' =&gt; $labels,\n 'has_archive' =&gt; true,\n 'public' =&gt; true,\n 'hierarchical' =&gt; false,\n 'supports' =&gt; array(\n  'title',\n  'editor',\n  'excerpt',\n  'custom-fields',\n  'thumbnail',\n  'page-attributes'\n ),\n 'taxonomies' =&gt; 'category',\n 'rewrite'\u00a0\u00a0 =&gt; array( 'slug' =&gt; 'book' ),\n \u2018show_in_rest\u2019 =&gt; true\n);<\/code><\/pre>\n<p>Laten we eens kijken wat deze allemaal doen.<\/p>\n<ul>\n<li>Het labels argument is de array met labels die we al eerder definieerden.<\/li>\n<li><code>'has_archive' =&gt; true<\/code> zorgt dat je een post type archief voor je custom post type kunt maken. Dit staat standaard op false dus ik overschrijf dit graag zodat ik de mogelijkheid heb om juist wel een post type-archief te maken (ik laat zo zien hoe).<\/li>\n<li><code>'public' =&gt; true<\/code> zorgt dat het post type ook verschijnt binnen de zoekresultaten en custom zoekopdrachten. Ook dit staat standaard uit en wil ik graag inschakelen.<\/li>\n<li>De &#8220;hierarchical&#8221; waarde hangt af van hoe je precies je custom post type wilt gaan gebruiken. Als je dit op &#8220;true&#8221; zet, zal het post type zich gedragen als het pagina-type, waarbij je een hi\u00ebrarchie kunt aanbrengen met parent en child-berichten. Als je dit op &#8220;false&#8221; zet, zal het zich gedragen als een gewoon bericht, zonder hi\u00ebrarchie.<\/li>\n<li>De &#8220;supports&#8221; array definieert een aantal features van post types die dit custom type kan ondersteunen. Ik wil graag zeker weten dat features zoals uitgelichte afbeeldingen en custom velden aanstaan.<\/li>\n<li>Het &#8220;taxonomies&#8221; argument definieert de bestaande taxonomie\u00ebn die van toepassing zijn op dit post type. Hier gebruik ik de &#8220;category&#8221; taxonomie. Als je graag een custom taxonomie wil gebruiken maar deze nog niet hebt geregistreerd, sla je deze regel gewoon over en registreer je de taxonomie bij het post type. Als je al wel een <a href=\"https:\/\/kinsta.com\/blog\/what-is-taxonomy\/\">custom taxonomie hebt geregistreerd<\/a> kun je het via deze regel aan het post type toewijzen.<\/li>\n<li>Ik gebruik het &#8220;rewrite&#8221; argument omdat ik de taxonomie een andere naam wil geven dan ik normaal gebruik. Ik zal dat zo toelichten.<\/li>\n<li><code>\u2018show_in_rest\u2019 =&gt; true<\/code> zorgt dat het post type toegankelijk is via de REST API en de Gutenberg-interface. Het staat standaard op &#8220;false&#8221;, wat ik niet snap: ik wil dat al mijn post types dezelfde interface gebruiken!<\/li>\n<\/ul>\n<p>Dat waren alle argumenten. Maar we hebben nog niet het daadwerkelijke post type geregistreerd. Laten we dat dus nu doen.<\/p>\n<h3>Toevoegen van de register_post_type() functie<\/h3>\n<p>De laatste stap is dit allemaal samenvoegen in de <code>register_post_type()<\/code> functie.<\/p>\n<p>Onder je argumenten maar nog altijd binnen de haken, voeg je dit toe:<\/p>\n<pre><code class=\"language-php\">register_post_type( \u2018kinsta_book', $args );<\/code><\/pre>\n<p>Dit registreert het &#8220;kinsta_book&#8221; post type, met de argumenten die we al gedefinieerd hadden.<\/p>\n<p>Nu snap je misschien ook beter waarom ik het &#8220;rewrite&#8221; argument gebruikte. Ik voeg graag een voorvoegsel toe aan de namen van mijn post type, zodat ik zeker weet dat de namen niet overeenkomen met post types van een andere plugins, maar ik wil niet dat het voorvoegsel publiek is.<\/p>\n<p>Standaard laat WordPress een voorbeeld van je post type zien met de naam van het post type in de URL. Mijn boek heet dus &#8220;My Wonderful Book&#8221; en zou als URL hebben mysite.com\/kinsta_book\/my-wonderful-book. Ik wil dat niet, dus daarom gebruik ik het &#8220;rewrite&#8221; argument om de URL te veranderen naar mysite.com\/book\/my-wonderful-book. Ziet er beter uit toch?<\/p>\n<p>Sla nu je bestand op en activeer je plugin binnen de WordPress admin-omgeving. Je ziet nu een nieuw post type verschijnen binnen je admin-menu.<\/p>\n<figure id=\"attachment_49134\" aria-describedby=\"caption-attachment-49134\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49134 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/books-post-type-in-admin-1024x540.jpg\" alt=\"Het \"book\" post type in de admin-omgeving\" width=\"1024\" height=\"540\"><figcaption id=\"caption-attachment-49134\" class=\"wp-caption-text\">Het &#8220;book&#8221; post type in de admin-omgeving<\/figcaption><\/figure>\n<p>Het post type is nu geregistreerd en je kunt het dus gaan gebruiken. Neem de tijd om enkele berichten eraan toe te voegen (dus berichten met je custom post type) en dan kijken we hoe je het kunt weergeven aan de voorkant.<\/p>\n<h2 id=\"display\">Zo geef je een custom post type weer op je website<\/h2>\n<p>De meeste custom post types die je aan je website toevoegt zullen functioneren als berichten, wat betekent dat ze zijn ontwerpen om weergegeven te worden binnen archiefpagina&#8217;s. Misschien gebruik je een custom taxonomie om ze weer te geven, of heb je de &#8220;category&#8221; taxonomie toegevoegd zoals ik dat deed.<\/p>\n<p>Je kunt ook een plugin zoals WooCommerce hebben gebruikt die bepaalde functionaliteiten bevat die een custom post type nodig heeft. Die plugin voegt dan ook vaak specifieke pagina&#8217;s toe (bijvoorbeeld de &#8220;Shop2&#8221; pagina) die zijn ontworpen om je custom post type weer te geven.<\/p>\n<p>De vier mogelijkheden om je custom post type weer te geven zijn:<\/p>\n<ul>\n<li>Het individuele bericht weergeven, dus in mijn voorbeeld het boek<\/li>\n<li>Het volledige archief van het post type weergeven, dus in mijn geval alle boeken.<\/li>\n<li>Een archief op basis van een custom taxonomie weergeven, door een taxonomie te gebruiken die je hebt geregistreerd bij je custom post type.<\/li>\n<li>Het integreren van berichten van het custom post type binnen het archief van een bestaande taxonomie, zoals &#8220;category&#8221;, of binnen de hoofdblog.<\/li>\n<\/ul>\n<p>Laten we deze allemaal bekijken.<\/p>\n<p><em>Waarschuwing! Als je op enig moment in dit proces niet bij je archieven of individuele berichten van je custom post type kunt, dan is dat omdat WordPress de permalinks ervan nog niet geschreven hebt. Om dit op te lossen ga je naar <\/em><strong><em>Instellingen &gt; Permalinks<\/em><\/strong><em> en klik je op de <\/em><strong><em>Wijzigingen opslaan<\/em><\/strong><em> knop. Dit vertelt WordPress dat ze moeten kijken of er nieuwe post types zijn en er URL\u2019s voor moeten aanmaken.<\/em><\/p>\n<h3>Weergeven van het archief van het post type<\/h3>\n<p>De eerste optie is dat je een archiefpagina maakt voor alle berichten van het nieuwe custom post type.<\/p>\n<p>Als je &#8220;has_archive&#8221; als &#8220;true&#8221; hebt ingesteld bij het registreren van het post type, zal WordPress automatisch een archiefpagina van je post type maken. Je kunt deze pagina toevoegen aan je navigatiemenu via de Customizer.<\/p>\n<h4>Toevoegen van het archief van je nieuwe post type via de Customizer<\/h4>\n<p>Open de Customizer en selecteer de <strong>Menu\u2019s<\/strong> optie. Selecteer je hoofdmenu en klik op <strong>Add items<\/strong> om extra items toe te voegen.<\/p>\n<figure id=\"attachment_49135\" aria-describedby=\"caption-attachment-49135\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49135 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/toevoegen-menu-item-1024x535.jpg\" alt=\"Toevoegen van een menu item in de WordPress Customizer\" width=\"1024\" height=\"535\"><figcaption id=\"caption-attachment-49135\" class=\"wp-caption-text\">Toevoegen van een menu item in de WordPress Customizer<\/figcaption><\/figure>\n<p>Selecteer je post type van de opties die verschijnen en klik op het pijltje naar beneden naast de naam. Je zult dan een lijst met alle berichten zien die je hebt toegevoegd, plus een optie die in mijn geval <strong>All Books<\/strong> heet. Klik daarop en dan wordt het toegevoegd aan je menu.<\/p>\n<p>Als je dan op het item in het menu klik kun je het label aanpassen. Ik noem de mijne liever niet &#8220;All Books&#8221; maar gewoon &#8220;Books&#8221;.<\/p>\n<figure id=\"attachment_49136\" aria-describedby=\"caption-attachment-49136\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49136 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/aanpassen-van-het-menu-item-1024x525.png\" alt=\"Aanpassen van het menu item\" width=\"1024\" height=\"525\"><figcaption id=\"caption-attachment-49136\" class=\"wp-caption-text\">Aanpassen van het menu item<\/figcaption><\/figure>\n<p>Let erop dat je dit alleen via de Customizer kan doen &#8211; niet via het Menu\u2019s scherm. Zorg dus dat je de Customizer gebruikt om een archiefpagina toe te voegen aan je menu.<\/p>\n<h3>Aanpassen van het archief van je post type<\/h3>\n<p>WordPress zal de <a href=\"https:\/\/wphierarchy.com\/\">sjabloonhi\u00ebrarchie<\/a> gebruiken om te bepalen welk sjabloonbestand binnen je thema ze moeten gebruiken om je archiefpagina weer te geven.<\/p>\n<figure id=\"attachment_49137\" aria-describedby=\"caption-attachment-49137\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49137 size-large\" src=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/07\/sjabloonhierarchie-1024x509.jpg\" alt=\"De sjabloonhierarchie bij WordPress\" width=\"1024\" height=\"509\"><figcaption id=\"caption-attachment-49137\" class=\"wp-caption-text\">De sjabloonhierarchie bij WordPress<\/figcaption><\/figure>\n<p>Als je thema een archive.php bestand heeft zal WordPress die gebruiken, en als die niet bestaat, zullen ze index.php gebruiken.<\/p>\n<p>Als je de manier waarop je archief wordt weergegeven wilt aanpassen, kun je een sjabloonbestand voor je archiefpagina voor je custom post type maken.<\/p>\n<p>Voor een specifiek custom post type moet je een sjabloonbestand maken met de naam archive-$posttype.php waarbij $posttype de naam van je post type moet zijn. Voor mijn &#8220;book&#8221; post type zou ik dus een bestand maken met de naam archive-kinsta_book.php.<\/p>\n<p>De makkelijkste manier om dit bestand te maken is door het archive.php bestand van je thema te kopi\u00ebren. Geef het een nieuwe naam en bewerk het zodat je archiefpagina wordt weergegeven zoals jij dat wilt.<\/p>\n<h3>Weergeven van individuele berichten<\/h3>\n<p>Individuele berichten die je met het custom post type hebt gemaakt zullen ook weergegeven worden volgens het eerste relevante sjabloonbestand dat binnen de hi\u00ebrarchie gevonden wordt.<\/p>\n<p>Je kunt verder gaan bij individuele berichten dan bij archieven: niet alleen kun je een sjabloonbestand voor het post type maken (single-$posttype.php), maar je kunt ook een bestand maken voor een individueel bericht, door de slug van dat bericht te gebruiken (single-$postype-slug.php).<\/p>\n<p>Als ik dus <em>Great Expectations<\/em> hebt toegevoegd voor mijn boekreviewwebsite, kan ik een bestand maken voor alle boekreviews genaamd single-kinsta_book.php, of ik kan een specifiek bestand voor dat ene boek maken met de naam single-kinsta_book-great-expectations.php. Als ik beide bestanden niet zou maken, gebruikt WordPress standaard de single.php of de singular.php of de index.php, afhankelijk van welke bestanden er bestaan.<\/p>\n<h3>Toevoegen van custom post types aan de hoofdblog<\/h3>\n<p>Standaard zijn alleen berichten op je hoofdblog van het type &#8220;post&#8221; te zien. Maar als je ook je nieuwe custom post type wilt laten zien?<\/p>\n<p>Dan doe je dat door de <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/pre_get_posts\">pre_get_posts<\/a> hook in WordPress te gebruiken.<\/p>\n<p>Binnen je plugin waarmee je het post type hebt gemaakt, voeg je dit toe:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nfunction kinsta_books_on_blog_page() {\n \n if ( $query-&gt;is_home() && $query-&gt;is_main_query() ) {\n  $query-&gt;set( \u2018post_type', array( \u2018post\u2019, \u2018kinsta_book\u2019 );\n }\n\n}\nadd_action( 'pre_get_posts', 'kinsta_books_on_blog_page' ); ?&gt;<\/code><\/pre>\n<p>Hiermee controleer je of je op de &#8220;home&#8221; pagina bent (wat de blogpagina is, ook als dat niet de eerste pagina is) en dat de hoofdquery loopt (omdat je dit bijvoorbeeld niet in een widget wil doen). Zo ja, dan voegt het zowel berichten als boeken (het nieuwe post type) toe aan de query.<\/p>\n<p>Let er wel op dat je ook het &#8220;post&#8221; post type moet toevoegen aan de array, naast je nieuwe post type.<\/p>\n\n<h2>Samenvatting<\/h2>\n<p>WordPress custom post types zijn een feature die van WordPress een echt content management system maken in plaats van alleen een <a href=\"https:\/\/kinsta.com\/nl\/blog\/beste-blogplatforms\/\">blogplatform<\/a>. Ze laten je complexe, luxe websites maken die zich gedragen als winkels, referentie-hubs, media-websites, of eigenlijk wat je ook maar nodig hebt.<\/p>\n<p>Je kunt custom post types op drie manieren toevoegen aan je WordPress-website. Je kunt een plugin zoals WooCommerce gebruiken die zelf een custom post type aanmaakt die nodig is voor de functionaliteit van de plugin. Je kunt een plugin zoals CPT UI of Pods gebruiken om je eigen post types toe te voegen. Of je kunt je eigen plugin schrijven en de <code>register_post_type()<\/code> functie gebruiken om zelf je post type te programmeren. Welke methode je ook gebruikt, ze zullen je helpen nog meer uit je WordPress-website te halen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Custom post types zijn een krachtige feature van WordPress. Door post types is WordPress niet alleen maar een eenvoudige bloggingtool, maar een volledig content management systeem. &#8230;<\/p>\n","protected":false},"author":105,"featured_media":25175,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[29,139],"topic":[892],"class_list":["post-25158","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-webdev","tag-wordpress-tutorials","topic-wordpress-ontwikkeling"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WordPress Custom Post Types: de all-in-one handleiding om deze te maken en te gebruiken<\/title>\n<meta name=\"description\" content=\"Leer precies wat WordPress custom post types zijn, hoe ze verschillen van standaard post types en hoe je ze kunt maken en gebruiken om jouw WordPress-site uit te breiden!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Custom post types in WordPress: De alles-in-\u00e9\u00e9n-uitleg hoe je ze kunt maken \u00e9n gebruiken\" \/>\n<meta property=\"og:description\" content=\"Leer precies wat WordPress custom post types zijn, hoe ze verschillen van standaard post types en hoe je ze kunt maken en gebruiken om jouw WordPress-site uit te breiden!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-07T12:52:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-10T07:40:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rachel McCollin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Leer precies wat WordPress custom post types zijn, hoe ze verschillen van standaard post types en hoe je ze kunt maken en gebruiken om jouw WordPress-site uit te breiden!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rachel McCollin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"30 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/\"},\"author\":{\"name\":\"Rachel McCollin\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/52eb266d622b565d3206e355caac172e\"},\"headline\":\"Custom post types in WordPress: De alles-in-\u00e9\u00e9n-uitleg hoe je ze kunt maken \u00e9n gebruiken\",\"datePublished\":\"2019-08-07T12:52:35+00:00\",\"dateModified\":\"2023-08-10T07:40:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/\"},\"wordCount\":5747,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png\",\"keywords\":[\"webdev\",\"wordpress-tutorials\"],\"articleSection\":[\"WordPress ontwikkeling\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/\",\"name\":\"WordPress Custom Post Types: de all-in-one handleiding om deze te maken en te gebruiken\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png\",\"datePublished\":\"2019-08-07T12:52:35+00:00\",\"dateModified\":\"2023-08-10T07:40:31+00:00\",\"description\":\"Leer precies wat WordPress custom post types zijn, hoe ze verschillen van standaard post types en hoe je ze kunt maken en gebruiken om jouw WordPress-site uit te breiden!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png\",\"width\":1460,\"height\":730,\"caption\":\"Custom Post Types\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress ontwikkeling\",\"item\":\"https:\/\/kinsta.com\/nl\/onderwerpen\/wordpress-ontwikkeling\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Custom post types in WordPress: De alles-in-\u00e9\u00e9n-uitleg hoe je ze kunt maken \u00e9n gebruiken\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/nl\/#website\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/52eb266d622b565d3206e355caac172e\",\"name\":\"Rachel McCollin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f99f27294a4a0acb07caa4d0604a1fef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f99f27294a4a0acb07caa4d0604a1fef?s=96&d=mm&r=g\",\"caption\":\"Rachel McCollin\"},\"description\":\"Rachel McCollin has been helping people build websites with WordPress since 2010. She's a huge fan of self-hosted WordPress and wants to help as many people as possible create an awesome website with it.\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/author\/rachelmccollin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WordPress Custom Post Types: de all-in-one handleiding om deze te maken en te gebruiken","description":"Leer precies wat WordPress custom post types zijn, hoe ze verschillen van standaard post types en hoe je ze kunt maken en gebruiken om jouw WordPress-site uit te breiden!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/","og_locale":"nl_NL","og_type":"article","og_title":"Custom post types in WordPress: De alles-in-\u00e9\u00e9n-uitleg hoe je ze kunt maken \u00e9n gebruiken","og_description":"Leer precies wat WordPress custom post types zijn, hoe ze verschillen van standaard post types en hoe je ze kunt maken en gebruiken om jouw WordPress-site uit te breiden!","og_url":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2019-08-07T12:52:35+00:00","article_modified_time":"2023-08-10T07:40:31+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png","type":"image\/png"}],"author":"Rachel McCollin","twitter_card":"summary_large_image","twitter_description":"Leer precies wat WordPress custom post types zijn, hoe ze verschillen van standaard post types en hoe je ze kunt maken en gebruiken om jouw WordPress-site uit te breiden!","twitter_image":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png","twitter_creator":"@Kinsta_NL","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Rachel McCollin","Geschatte leestijd":"30 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/"},"author":{"name":"Rachel McCollin","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/52eb266d622b565d3206e355caac172e"},"headline":"Custom post types in WordPress: De alles-in-\u00e9\u00e9n-uitleg hoe je ze kunt maken \u00e9n gebruiken","datePublished":"2019-08-07T12:52:35+00:00","dateModified":"2023-08-10T07:40:31+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/"},"wordCount":5747,"commentCount":2,"publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png","keywords":["webdev","wordpress-tutorials"],"articleSection":["WordPress ontwikkeling"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/","url":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/","name":"WordPress Custom Post Types: de all-in-one handleiding om deze te maken en te gebruiken","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png","datePublished":"2019-08-07T12:52:35+00:00","dateModified":"2023-08-10T07:40:31+00:00","description":"Leer precies wat WordPress custom post types zijn, hoe ze verschillen van standaard post types en hoe je ze kunt maken en gebruiken om jouw WordPress-site uit te breiden!","breadcrumb":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#primaryimage","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2019\/08\/wordpress-custom-post-types.png","width":1460,"height":730,"caption":"Custom Post Types"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"WordPress ontwikkeling","item":"https:\/\/kinsta.com\/nl\/onderwerpen\/wordpress-ontwikkeling\/"},{"@type":"ListItem","position":3,"name":"Custom post types in WordPress: De alles-in-\u00e9\u00e9n-uitleg hoe je ze kunt maken \u00e9n gebruiken"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/nl\/#website","url":"https:\/\/kinsta.com\/nl\/","name":"Kinsta\u00ae","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/nl\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/52eb266d622b565d3206e355caac172e","name":"Rachel McCollin","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f99f27294a4a0acb07caa4d0604a1fef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f99f27294a4a0acb07caa4d0604a1fef?s=96&d=mm&r=g","caption":"Rachel McCollin"},"description":"Rachel McCollin has been helping people build websites with WordPress since 2010. She's a huge fan of self-hosted WordPress and wants to help as many people as possible create an awesome website with it.","url":"https:\/\/kinsta.com\/nl\/blog\/author\/rachelmccollin\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/25158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/users\/105"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/comments?post=25158"}],"version-history":[{"count":9,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/25158\/revisions"}],"predecessor-version":[{"id":54842,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/25158\/revisions\/54842"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/en"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/dk"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/nl"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/jp"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/fr"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/it"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/de"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/es"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/pt"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/translations\/se"},{"href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/25158\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media\/25175"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media?parent=25158"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/tags?post=25158"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/topic?post=25158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}