{"id":62702,"date":"2025-06-12T09:19:02","date_gmt":"2025-06-12T07:19:02","guid":{"rendered":"https:\/\/kinsta.com\/nl\/?p=62702&#038;preview=true&#038;preview_id=62702"},"modified":"2025-06-16T17:45:23","modified_gmt":"2025-06-16T15:45:23","slug":"hybrid-themas","status":"publish","type":"post","link":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/","title":{"rendered":"Hybride thema&#8217;s in WordPress: een kijkje vanuit de gebruiker en developer"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-5-9\/\">WordPress 5.9<\/a> introduceerde een nieuwe manier om websites te bouwen: <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-full-site-editing\/\">Full Site Editing<\/a>. Het was een keerpunt voor veel WordPress gebruikers omdat het de manier waarop WordPress thema&#8217;s worden gebouwd en werken volledig veranderde.<\/p>\n<p>Met de introductie van FSE werd ook een onderscheid gemaakt tussen thema&#8217;s die de nieuwe functies voor het bouwen van sites volledig ondersteunen, ook wel blokthema&#8217;s genoemd, en de traditionele PHP-gebaseerde thema&#8217;s, die we nu klassieke thema&#8217;s noemen.<\/p>\n<p>In de loop der tijd zijn veel functies die voor blokthema&#8217;s zijn gebouwd, uitgebreid naar klassieke thema&#8217;s. Dit heeft geresulteerd in een derde categorie thema&#8217;s, hybride thema&#8217;s, die nog steeds gebouwd zijn met de logica en structuur van klassieke thema&#8217;s, maar met ondersteuning voor verschillende functies die ontworpen zijn voor blokthema&#8217;s.<\/p>\n<p>In dit artikel wordt ingegaan op hybride thema&#8217;s, hun belangrijkste functies, hoe ontwikkelaars ze kunnen verbeteren en wanneer ze te verkiezen zijn boven blokthema&#8217;s.<\/p>\n<p>Laten we meteen gaan kijken!<\/p>\n<figure id=\"attachment_193756\" aria-describedby=\"caption-attachment-193756\" style=\"width: 2940px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-193756 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/ttt-preview.jpg\" alt=\"Een preview van het WordPress-thema Twenty Twenty-Two\" width=\"2940\" height=\"1840\"><figcaption id=\"caption-attachment-193756\" class=\"wp-caption-text\">Twenty Twenty-Two is het eerste WordPress thema dat Full Site Editing ondersteunt<\/figcaption><\/figure>\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>Klassieke of hybride thema&#8217;s?<\/h2>\n<p>Voor de introductie van blokthema&#8217;s met <a href=\"https:\/\/kinsta.com\/nl\/blog\/twenty-twenty-two-blokthema\/\">Twenty Twenty-Two<\/a> en WordPress 5.9 bestonden er geen klassieke thema&#8217;s. De term is ontstaan om ze te onderscheiden van blokthema&#8217;s. Klassieke thema&#8217;s zijn alle WordPress thema&#8217;s zonder ondersteuning voor blokfuncties.<\/p>\n<figure id=\"attachment_193750\" aria-describedby=\"caption-attachment-193750\" style=\"width: 2940px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-193750 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-preview.jpg\" alt=\"Een voorbeeld van het Twenty Twenty-One Hybrid thema\" width=\"2940\" height=\"1836\"><figcaption id=\"caption-attachment-193750\" class=\"wp-caption-text\">Een voorbeeld van het Twenty Twenty-One Hybrid thema<\/figcaption><\/figure>\n<p>Vandaag de dag is het niet eenvoudig om pure klassieke thema&#8217;s te vinden, omdat deze thema&#8217;s sinds 5.9 zijn uitgebreid met veel features die zijn gebouwd voor blokthema&#8217;s, waardoor de bewerkings- en ontwerpervaringen van de twee categorie\u00ebn thema&#8217;s in de loop der tijd steeds dichter bij elkaar zijn komen te liggen.<\/p>\n<p>Dat gezegd hebbende, is de manier waarop je met hybride thema&#8217;s werkt nog steeds anders dan met blokthema&#8217;s.<\/p>\n<h2>Basisfeatures van hybride thema&#8217;s<\/h2>\n<p>Met hybride thema&#8217;s kan je site profiteren van de bewerkingsmogelijkheden van de WordPress Block Editor terwijl hij toch compatibel blijft met traditionele WordPress plugins en functies zoals widgets, menu&#8217;s en pagina templates.<\/p>\n<h3>De WordPress Customizer<\/h3>\n<p>Hybride thema&#8217;s ondersteunen meestal de <a href=\"https:\/\/kinsta.com\/nl\/blog\/hoe-je-je-wordpress-thema-kan-customizen\/#customizing-your-theme-via-the-customizer\">WordPress Customizer<\/a>, een visuele configuratieomgeving waarmee je het uiterlijk van je WordPress website kunt verfijnen en je wijzigingen in realtime kunt bekijken.<\/p>\n<p>Het <a href=\"https:\/\/kinsta.com\/nl\/blog\/twenty-twenty-one-thema\/\">Twenty Twenty-One<\/a> standaardthema is een goed voorbeeld van een hybride thema dat de meest gebruikelijke Customizer instellingen biedt, waaronder Site Identiteit, Kleuren &#038; Donkere Modus, Achtergrondafbeelding, Menu&#8217;s, Widgets, Homepage Instellingen en meer.<\/p>\n<figure id=\"attachment_193760\" aria-describedby=\"caption-attachment-193760\" style=\"width: 2372px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-193760 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-customizer-1.jpg\" alt=\"De Customizer met het Twenty Twenty-One thema\" width=\"2372\" height=\"1464\"><figcaption id=\"caption-attachment-193760\" class=\"wp-caption-text\">De Customizer met het Twenty Twenty-One thema<\/figcaption><\/figure>\n<p>Thema&#8217;s kunnen specifieke Customizer control elementen registreren, dus de functionaliteit verschilt per thema. De volgende afbeelding toont de Customizer voor <a href=\"https:\/\/kinsta.com\/nl\/blog\/snelste-wordpress-thema\/#2-neve\">Neve<\/a>, een lichtgewicht hybride thema van ThemeIsle.<\/p>\n<figure id=\"attachment_194046\" aria-describedby=\"caption-attachment-194046\" style=\"width: 1870px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194046 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/wordpress-customizer-neve.jpg\" alt=\"Een preview van de Customizer voor Neve WordPress thema\" width=\"1870\" height=\"1340\"><figcaption id=\"caption-attachment-194046\" class=\"wp-caption-text\">Een preview van de Customizer voor Neve WordPress thema<\/figcaption><\/figure>\n<p>Thema&#8217;s kunnen ook geavanceerde functies registreren om gebruikers meer controle te geven over specifieke aspecten van het siteontwerp. Neve biedt bijvoorbeeld een krachtige builder voor het maken van site headers en footers.<\/p>\n<figure id=\"attachment_194047\" aria-describedby=\"caption-attachment-194047\" style=\"width: 1998px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194047 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/wordpress-customizer-neve-header-builder.jpg\" alt=\"Neve heeft een header builder in de Customizer\" width=\"1998\" height=\"1420\"><figcaption id=\"caption-attachment-194047\" class=\"wp-caption-text\">Neve heeft een header builder in de Customizer<\/figcaption><\/figure>\n<h3>Widgets blokkeren<\/h3>\n<p>Met hybride thema&#8217;s kun je widgetgebieden aanpassen met behulp van blokken, dankzij de <a href=\"https:\/\/wordpress.org\/documentation\/article\/block-based-widgets-editor\/\" target=\"_blank\" rel=\"noopener noreferrer\">op blokken gebaseerde Widgets Editor<\/a>. Het werd voor het eerst <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-5-8\/#blockbased-widgets-editor-and-block-widgets-in-the-customizer\">ge\u00efntroduceerd met WordPress 5.8<\/a> en je kunt het proberen met elk klassiek thema dat widgets gebruikt.<\/p>\n<figure id=\"attachment_193761\" aria-describedby=\"caption-attachment-193761\" style=\"width: 2368px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-193761 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-block-widget.jpg\" alt=\"Het Widgets scherm in Twenty Twenty-One\" width=\"2368\" height=\"1376\"><figcaption id=\"caption-attachment-193761\" class=\"wp-caption-text\">Het Widgets scherm in Twenty Twenty-One<\/figcaption><\/figure>\n<p>De Widget Editor interface is vergelijkbaar met de Post Editor interface. De volgende afbeelding toont een afbeeldingsblok in het widgetgebied Footer van het thema Twenty Twenty-One.<\/p>\n<figure id=\"attachment_193992\" aria-describedby=\"caption-attachment-193992\" style=\"width: 2180px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-193992 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/widget-editor-tto.jpg\" alt=\"Een screenshot van de Widget-editor met het thema Twenty Twenty-One\" width=\"2180\" height=\"1254\"><figcaption id=\"caption-attachment-193992\" class=\"wp-caption-text\">De Widget editor brengt blokfeatures naar klassieke widgets<\/figcaption><\/figure>\n<p>Klassieke widgets zoals Categorie\u00ebn, Archieven, Recente berichten of Recente reacties worden nog steeds ondersteund in hybride thema&#8217;s. De Widget Editor vult de klassieke WordPress widgets aan door gebruikers in staat te stellen hun eigen widgets te maken via de op blokken gebaseerde interface.<\/p>\n<h3>Stijlboek en blokpatterns<\/h3>\n<p>Met de recente <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-6-8\/#2-style-book-added-to-classic-themes\">veranderingen die zijn ge\u00efntroduceerd met WordPress 6.8<\/a>, kunnen hybride thema&#8217;s die <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/themes\/theme-support\/#editor-styles\" target=\"_blank\" rel=\"noopener noreferrer\">editor stijlen<\/a> ondersteunen gebruik maken van het <strong>Stijlboek<\/strong>, een <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-6-2\/#style-book\">visuele interface<\/a> waarmee gebruikers een voorbeeld kunnen bekijken van elk blok dat gebruikt kan worden op hun websites zonder dat ze deze blokken hoeven te gebruiken in hun content.<\/p>\n<p>Je hebt toegang tot het Stijlboek in hybride thema&#8217;s via <b>Appearance <\/b>&gt; <b>Design <\/b>&gt; <strong>Styles<\/strong>.<\/p>\n<p>De volgende afbeelding toont het Stijlboek voor het hybride thema Kadence.<\/p>\n<figure id=\"attachment_194055\" aria-describedby=\"caption-attachment-194055\" style=\"width: 2148px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194055 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/kadence-style-book.jpg\" alt=\"Het Stijlboek voor het hybride thema Kadence\" width=\"2148\" height=\"1412\"><figcaption id=\"caption-attachment-194055\" class=\"wp-caption-text\">Het Stijlboek voor het hybride thema Kadence<\/figcaption><\/figure>\n<p>In dezelfde interface kun je Patterns doorbladeren en beheren.<\/p>\n<figure id=\"attachment_194056\" aria-describedby=\"caption-attachment-194056\" style=\"width: 2148px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194056 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/blocksy-patterns.jpg\" alt=\"Blocksy themapatterns\" width=\"2148\" height=\"1422\"><figcaption id=\"caption-attachment-194056\" class=\"wp-caption-text\">Blocksy themapatterns<\/figcaption><\/figure>\n<p>Voor hybride thema&#8217;s die deze ondersteunen, zijn patterns beschikbaar voor gebruik in de <a href=\"https:\/\/kinsta.com\/nl\/blog\/gutenberg-wordpress-editor\/\">Post Editor<\/a>, die standaard is ingeschakeld op alle WordPress installaties sinds <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-5-0\/\">5.0<\/a>, tenzij je <a href=\"https:\/\/kinsta.com\/nl\/blog\/schakel-gutenberg-wordpress-editor-uit\/\">deze hebt uitgeschakeld met de Classic Editor plugin<\/a>.<\/p>\n<figure id=\"attachment_194157\" aria-describedby=\"caption-attachment-194157\" style=\"width: 2876px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194157 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/patterns-in-the-post-editor.jpg\" alt=\"The Patterns section in the block inserter of the Post Editor with Twenty Twenty-One theme\" width=\"2876\" height=\"1376\"><figcaption id=\"caption-attachment-194157\" class=\"wp-caption-text\">De Patterns sectie in de Block Inserter van de Post Editor met het Twenty Twenty-One thema<\/figcaption><\/figure>\n<h2>Themastructuur: Een overzicht voor ontwikkelaars<\/h2>\n<p>Klassieke thema&#8217;s en blokthema&#8217;s verschillen niet alleen qua functionaliteit voor de eindgebruiker. Ze verschillen ook qua structuur.<\/p>\n<h3>Klassieke thema&#8217;s<\/h3>\n<p>Klassieke thema&#8217;s vertrouwen op een paar belangrijke bestanden, waarvan het belangrijkste het bestand <code>style.css<\/code> is. Dit bestand bevat de <a href=\"https:\/\/developer.wordpress.org\/themes\/core-concepts\/main-stylesheet\/#file-header\">metagegevens van het thema<\/a> en bepaalt hoe de site er aan de voorkant uitziet.<\/p>\n<p>Naast het stijlblad van het thema hebben klassieke thema&#8217;s meestal een <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-functions-php\/\"><code>functions.php<\/code> bestand<\/a> dat wordt gebruikt om de functionaliteit en ondersteuning van het thema op te bouwen.<\/p>\n<p>Klassieke thema&#8217;s vertrouwen verder op PHP templates die de structuur van een pagina en de belangrijkste gebieden defini\u00ebren: header, body, sidebars en footer. Wanneer een gebruiker een bericht of pagina bezoekt, bepaalt WordPress welke template gebruikt moet worden om de inhoud op het scherm weer te geven volgens een strikt systeem van regels die bekend staan als de <a href=\"https:\/\/kinsta.com\/nl\/blog\/template-hierarchie-van-wordpress\/\">template hi\u00ebrarchie<\/a>. De meest gebruikte templates zijn <code>index.php<\/code>, <code>page.php<\/code>, <code>single.php<\/code>, en vele andere.<\/p>\n<p>Klassieke thema&#8217;s kunnen gebruik maken van specifieke PHP features (<a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-hooks\/\">actie- en filterhooks<\/a>), die op specifieke momenten in het leven van WordPress worden uitgevoerd, waardoor ontwikkelaars de functionaliteit van een thema kunnen uitbreiden met PHP code in het <code>functions.php<\/code> bestand van een <a href=\"https:\/\/kinsta.com\/nl\/blog\/child-thema-wordpress\/\">childthema<\/a>.<\/p>\n<p>Je kunt wel raden dat het aanpassen van een klassiek thema bijzonder moeilijk is voor gebruikers zonder codeervaardigheden.<\/p>\n<h3>Blokthema&#8217;s<\/h3>\n<p>blokthema&#8217;s hebben ook een <code>style.css<\/code> nodig om WordPress te voorzien van de metadata van het thema, maar ze vertrouwen sterk op een <a href=\"https:\/\/kinsta.com\/nl\/blog\/theme-json\/\"><code>theme.json<\/code> bestand<\/a>, een configuratiebestand dat globale stijlen en instellingen voor een thema definieert. Het <a href=\"https:\/\/kinsta.com\/nl\/blog\/theme-json-properties-key-value-pairs\/\">bevat een JSON object<\/a> waarvan de eigenschappen de <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-typografie-theme-json\/\">initi\u00eble instellingen<\/a> defini\u00ebren die nodig zijn om de layout te maken en het <a href=\"https:\/\/kinsta.com\/nl\/blog\/css-custom-properties-theme-json\/\">uiterlijk<\/a> van de pagina&#8217;s van de site te bepalen.<\/p>\n<p>Blokthema&#8217;s gebruiken ook templates en template parts, maar deze verschillen structureel van de klassieke PHP templates voor thema&#8217;s. In blokthema&#8217;s zijn templates en templates parts HTML bestanden die specifieke markup en JSON objecten bevatten. Neem bijvoorbeeld het template <code>home.html<\/code> van het standaardthema <a href=\"https:\/\/kinsta.com\/nl\/blog\/twenty-twenty-five-thema\/\">Twenty Twenty-Five<\/a>:<\/p>\n<pre><code class=\"language-html\">&lt;!-- wp:template-part {\"slug\":\"header\"} \/--&gt;\n\n&lt;!-- wp:group {\"tagName\":\"main\",\"style\":{\"spacing\":{\"margin\":{\"top\":\"var:preset|spacing|60\"}}},\"layout\":{\"type\":\"constrained\"}} --&gt;\n&lt;main class=\"wp-block-group\" style=\"margin-top:var(--wp--preset--spacing--60)\"&gt;\n\t&lt;!-- wp:pattern {\"slug\":\"twentytwentyfive\/hidden-blog-heading\"} \/--&gt;\n\t&lt;!-- wp:pattern {\"slug\":\"twentytwentyfive\/template-query-loop\"} \/--&gt;\n&lt;\/main&gt;\n&lt;!-- \/wp:group --&gt;\n\n&lt;!-- wp:template-part {\"slug\":\"footer\"} \/--&gt;<\/code><\/pre>\n<p>Deze template bestaat uit gestructureerde elementen in de vorm van HTML tags en commentaar. Commentaar kan verwijzen naar andere typische elementen van een blokthema, zoals template parts en patterns, die zijn opgebouwd uit blokken of andere geneste elementen.<\/p>\n<h2>Blokfuncties toevoegen aan hybride thema&#8217;s<\/h2>\n<p>Zoals we hierboven al zeiden, moet je met klassieke thema&#8217;s aangepaste code toevoegen om de layout of functionaliteit van een site te wijzigen, vaak met behulp van template parts of <code>functions.php<\/code>. Blokthema&#8217;s geven niet-ontwikkelaars daarentegen meer controle over de layout en het uiterlijk van de site.<\/p>\n<p>Hybride thema&#8217;s bieden minder blokfuncties dan blokthema&#8217;s, maar kunnen nog steeds meer controle bieden over de layout en stijl door middel van patterns en globale stijlen.<\/p>\n<p>Laten we eens kijken naar een aantal krachtige blokfuncties die je kunt integreren in je klassieke thema en leren hoe je ze effectief kunt implementeren.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"5\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>Global styles<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-5-8\/\">WordPress 5.8<\/a> introduceerde Global Styles, een visuele interface waarmee gebruikers de look en feel van hun website kunnen bepalen vanuit een gecentraliseerde interface, en ontwikkelaars de stijlen van hun WordPress websites kunnen beheren via een <code>theme.json<\/code> bestand.<\/p>\n<p>Om deze functie in je hybride thema in te schakelen, voeg je gewoon een <code>theme.json<\/code> bestand toe aan de hoofdmap van het thema. Laten we eens kijken naar enkele van de belangrijkste functies die je met <code>theme.json<\/code> aan je hybride thema kunt toevoegen.<\/p>\n<h4>Typografie<\/h4>\n<p>Laten we zeggen dat je ondersteuning voor drie lettertypefamilies wilt toevoegen aan je klassieke thema. In dit voorbeeld gebruiken we <a href=\"https:\/\/kinsta.com\/nl\/blog\/twenty-twenty-one-thema\/\">Twenty Twenty-One<\/a>.<\/p>\n<p>Maak eerst een map <code>fonts<\/code> aan onder <code>assets<\/code> en upload een aantal lettertypen naar keuze. We voegen drie lettertypen toe: <code>Manrope<\/code>, <code>Fira Code<\/code>, en <code>Beiruti<\/code>. Je kunt deze lettertypen uit het <a href=\"https:\/\/kinsta.com\/nl\/blog\/twenty-twenty-five-thema\/\">Twenty Twenty-Five<\/a> thema halen.<\/p>\n<figure id=\"attachment_194169\" aria-describedby=\"caption-attachment-194169\" style=\"width: 1608px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194169 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/twenty-twenty-one-custom.jpg\" alt=\"We hebben drie lettertypen en een theme.json bestand toegevoegd aan het Twenty Twenty-One thema\" width=\"1608\" height=\"1388\"><figcaption id=\"caption-attachment-194169\" class=\"wp-caption-text\">We hebben drie lettertypen en een theme.json bestand toegevoegd aan het Twenty Twenty-One thema<\/figcaption><\/figure>\n<p>Open je teksteditor en maak de volgende <code>theme.json<\/code>:<\/p>\n<pre><code class=\"language-json\">{\n\t\"$schema\": \"https:\/\/schemas.wp.org\/trunk\/theme.json\",\n\t\"version\": 3,\n\t\"settings\": {\n\t\t\"layout\": {\n\t\t\t\"contentSize\": \"768px\",\n\t\t\t\"wideSize\": \"1024px\"\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontFamilies\": [\n\t\t\t\t{\n\t\t\t\t\t\"name\": \"Manrope\",\n\t\t\t\t\t\"slug\": \"manrope\",\n\t\t\t\t\t\"fontFamily\": \"Manrope, sans-serif\",\n\t\t\t\t\t\"fontFace\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"src\": [\n\t\t\t\t\t\t\t\t\"file:.\/assets\/fonts\/manrope\/Manrope-VariableFont_wght.woff2\"\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\"fontWeight\": \"200 800\",\n\t\t\t\t\t\t\t\"fontStyle\": \"normal\",\n\t\t\t\t\t\t\t\"fontFamily\": \"Manrope\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"name\": \"Fira Code\",\n\t\t\t\t\t\"slug\": \"fira-code\",\n\t\t\t\t\t\"fontFamily\": \"\\\"Fira Code\\\", monospace\",\n\t\t\t\t\t\"fontFace\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"src\": [\n\t\t\t\t\t\t\t\t\"file:.\/assets\/fonts\/fira-code\/FiraCode-VariableFont_wght.woff2\"\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\"fontWeight\": \"300 700\",\n\t\t\t\t\t\t\t\"fontStyle\": \"normal\",\n\t\t\t\t\t\t\t\"fontFamily\": \"\\\"Fira Code\\\"\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"name\": \"Beiruti\",\n\t\t\t\t\t\"slug\": \"beiruti\",\n\t\t\t\t\t\"fontFamily\": \"Beiruti, sans-serif\",\n\t\t\t\t\t\"fontFace\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"src\": [\n\t\t\t\t\t\t\t\t\"file:.\/assets\/fonts\/beiruti\/Beiruti-VariableFont_wght.woff2\"\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\"fontWeight\": \"300 700\",\n\t\t\t\t\t\t\t\"fontStyle\": \"normal\",\n\t\t\t\t\t\t\t\"fontFamily\": \"Beiruti\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t}\n}<\/code><\/pre>\n<p>Met de property <code>settings.typography.fontFamilies<\/code> kun je een willekeurig aantal <a href=\"https:\/\/developer.wordpress.org\/themes\/global-settings-and-styles\/settings\/typography\/#custom-font-families\" target=\"_blank\" rel=\"noopener noreferrer\">custom lettertypefamilies<\/a> registreren. Voor elk lettertype moet je de volgende properties declareren:<\/p>\n<ul>\n<li><code>name<\/code>: Een verplichte voor mensen leesbare titel voor de lettertypefamilie.<\/li>\n<li><code>slug<\/code>: Een verplichte slug voor de lettertypefamilie. Deze wordt toegevoegd aan een gegenereerde CSS property: <code>--wp--preset--font-family--{slug}<\/code>.<\/li>\n<li><code>fontFamily<\/code>: Een verplichte waarde die wordt toegewezen aan de CSS font-family waarde.<\/li>\n<li><code>fontFace<\/code>: Een optionele array van lettertypes die worden toegewezen aan de CSS at-regel <code>@font-face<\/code>. Je hebt dit alleen nodig met aangepaste webfonts.<\/li>\n<\/ul>\n<p>Sla je <code>theme.json<\/code> op en navigeer naar je WordPress dashboard. Maak een nieuwe post of pagina aan, voeg een paragraaf met een voorbeeldtekst toe en open de blokzijbalk. Klik op de knop <strong>Typography options <\/strong>en selecteer <strong>Font<\/strong>. Je zou opties moeten vinden voor de lettertypefamilies die je zojuist hebt toegevoegd aan je thema.<\/p>\n<p>De volgende afbeeldingen laten zien hoe de zijbalk van het Paragraph blok eruit ziet voor en na het toevoegen van de <code>theme.json<\/code> die je hierboven ziet.<\/p>\n<figure id=\"attachment_194170\" aria-describedby=\"caption-attachment-194170\" style=\"width: 2160px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194170 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-default-typography.png\" alt=\"Paragraph blok zijbalk met Twenty Twenty-One thema zonder theme.json\" width=\"2160\" height=\"950\"><figcaption id=\"caption-attachment-194170\" class=\"wp-caption-text\">Paragraph blok zijbalk met Twenty Twenty-One thema zonder theme.json<\/figcaption><\/figure>\n<figure id=\"attachment_194171\" aria-describedby=\"caption-attachment-194171\" style=\"width: 2334px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-194171\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-typography-with-font-support.png\" alt=\"Paragraph block sidebar with Twenty Twenty-One theme with theme.json\" width=\"2334\" height=\"1080\"><figcaption id=\"caption-attachment-194171\" class=\"wp-caption-text\">Paragraph block sidebar met Twenty Twenty-One thema met theme.json<\/figcaption><\/figure>\n<p>Global Style eigenschappen verschillen per thema. Afgezien van <code>typography<\/code>, kun je met algemeen ondersteunde propertieshet kleurenpalet, de layout en aangepaste stijlen regelen. De volgende voorbeelden zijn getest op Twenty Twenty-One.<\/p>\n<h4>Kleurenpalet, kleurverlopen en duotone filters<\/h4>\n<p>Je kunt <a href=\"https:\/\/developer.wordpress.org\/themes\/global-settings-and-styles\/settings\/color\/#custom-color-palette\" target=\"_blank\" rel=\"noopener noreferrer\">ondersteuning voor custom kleuren<\/a> toevoegen met de <code>settings.color<\/code> property op thema- of blokniveau. De volgende code voegt bijvoorbeeld twee kleuren toe aan het standaard kleurenpalet:<\/p>\n<pre><code class=\"language-json\">settings: {\n\t\"color\": {\n\t\t\"palette\": [\n\t\t\t{\n\t\t\t\t\"name\": \"Dark blue\",\n\t\t\t\t\"slug\": \"dark-blue\",\n\t\t\t\t\"color\": \"#1e73be\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"Bright green\",\n\t\t\t\t\"slug\": \"bright-green\",\n\t\t\t\t\"color\": \"#81d742\"\n\t\t\t}\n\t\t]\n\t},\n}<\/code><\/pre>\n<p>Je kunt de property <code>settings.color.palette<\/code> gebruiken om zoveel kleuren te registreren als je wilt.<\/p>\n<figure id=\"attachment_194172\" aria-describedby=\"caption-attachment-194172\" style=\"width: 1656px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194172 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-add-color-support.jpg\" alt=\"Custom kleurenpalet toegevoegd aan Twenty Twenty-One\" width=\"1656\" height=\"926\"><figcaption id=\"caption-attachment-194172\" class=\"wp-caption-text\">Custom kleurenpalet toegevoegd aan Twenty Twenty-One<\/figcaption><\/figure>\n<p>Je kunt ook ondersteuning voor kleurverlopen en duotone filters toevoegen:<\/p>\n<pre><code class=\"language-json\">settings: {\n\t\"color\": {\n\t\t\"gradients\": [\n\t\t\t{\n\t\t\t\t\"gradient\": \"linear-gradient(135deg, #0073e6, #8fceff)\",\n\t\t\t\t\"name\": \"Clear Sky\",\n\t\t\t\t\"slug\": \"clear-sky\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"gradient\": \"linear-gradient(to right top, #ff8c00, #ff0080)\",\n\t\t\t\t\"name\": \"Vivid Sunset\",\n\t\t\t\t\"slug\": \"vivid-sunset\"\n\t\t\t}\n\t\t]\n\t}\n}<\/code><\/pre>\n<figure id=\"attachment_194177\" aria-describedby=\"caption-attachment-194177\" style=\"width: 2142px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194177 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/hybrid-themes-adding-gradients.jpg\" alt=\"We hebben twee kleurverlopen toegevoegd aan Global Styles in Twenty Twenty-One via theme.json\" width=\"2142\" height=\"1350\"><figcaption id=\"caption-attachment-194177\" class=\"wp-caption-text\">We hebben twee kleurverlopen toegevoegd aan Global Styles in Twenty Twenty-One via theme.json<\/figcaption><\/figure>\n<pre><code class=\"language-json\">settings: {\n\t\"color\": {\n\t\t\"duotone\": [\n\t\t\t{\n\t\t\t\t\"colors\": [ \"#0A2F51\", \"#F5D04E\" ],\n\t\t\t\t\"name\": \"Deep Sea Gold\",\n\t\t\t\t\"slug\": \"deep-sea-gold\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"colors\": [ \"#3A0CA3\", \"#FFB703\" ],\n\t\t\t\t\"name\": \"Purple Amber\",\n\t\t\t\t\"slug\": \"purple-amber\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"colors\": [ \"#1B4332\", \"#BAE6C4\" ],\n\t\t\t\t\"name\": \"Forest Mist\",\n\t\t\t\t\"slug\": \"forest-mist\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t \"colors\": [ \"#000000\", \"#FFFFFF\" ],\n\t\t\t\t \"name\": \"Black and White\",\n\t\t\t\t \"slug\": \"black-and-white\"\n\t\t\t}\n\t\t]\n\t}\n}<\/code><\/pre>\n<figure id=\"attachment_194178\" aria-describedby=\"caption-attachment-194178\" style=\"width: 2246px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194178 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/hybrid-themes-adding-duotone.jpg\" alt=\"Duotone filters toegevoegd aan Global Styles in Twenty Twenty-One\" width=\"2246\" height=\"1080\"><figcaption id=\"caption-attachment-194178\" class=\"wp-caption-text\">Duotone filters toegevoegd aan Global Styles in Twenty Twenty-One<\/figcaption><\/figure>\n<h4>Layout<\/h4>\n<p>Je kunt ook de standaard layoutinstellingen aanpassen. Met de <a href=\"https:\/\/developer.wordpress.org\/themes\/global-settings-and-styles\/settings\/layout\/\">property <code>settings.layout<\/code><\/a> kun je de standaard inhoudsbreedte en breedte van de uitlijning instellen. Hier is een voorbeeld:<\/p>\n<pre><code class=\"language-json\">\"settings\": {\n\t\"layout\": {\n\t\t\"contentSize\": \"768px\",\n\t\t\"wideSize\": \"1024px\"\n\t}\n}<\/code><\/pre>\n<p>Voor een meer diepgaand overzicht van <code>theme.json<\/code>, bekijk onze <a href=\"https:\/\/kinsta.com\/nl\/blog\/theme-json\/\">uitgebreide tutorial over <code>theme.json<\/code><\/a> en de offici\u00eble <a href=\"https:\/\/developer.wordpress.org\/themes\/global-settings-and-styles\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress documentatie<\/a>.<\/p>\n<h3>Blokstijlvariaties<\/h3>\n<p>Met <a href=\"https:\/\/developer.wordpress.org\/themes\/features\/block-style-variations\/\" target=\"_blank\" rel=\"noopener noreferrer\">blokstijlvariaties<\/a>, voor het eerst <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-5-3\/#1-register-and-unregister-block-styles\">ge\u00efntroduceerd in WordPress 5.3<\/a>, kunnen ontwikkelaars alternatieve stijlen maken voor specifieke blokken.<\/p>\n<p>Kort gezegd zijn blokstijlen CSS klassen die worden toegevoegd aan het wrapper element van een blok in de vorm <code>.is-style-{name}<\/code>.<\/p>\n<p>Blokstijlvariaties verschijnen in het Styles paneel van de blokzijbalk en stellen je in staat om met \u00e9\u00e9n klik een stijl voor het blok te selecteren.<\/p>\n<figure id=\"attachment_194193\" aria-describedby=\"caption-attachment-194193\" style=\"width: 2142px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194193 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-style-variations-image-block.jpg\" alt=\"Twenty Twenty-One standaard stijlvariaties voor het blok Image \" width=\"2142\" height=\"1118\"><figcaption id=\"caption-attachment-194193\" class=\"wp-caption-text\">Twenty Twenty-One standaard stijlvariaties voor het blok Image<\/figcaption><\/figure>\n<p>Je kunt je blokstijlvariaties op verschillende manieren registreren.<\/p>\n<p>Ten eerste kun je blokstijlen registreren met de PHP <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_block_style\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>register_block_style()<\/code> functie<\/a>. Je kunt bijvoorbeeld de volgende stijlvariatie registreren in het function bestand van je thema:<\/p>\n<pre><code class=\"language-php\">if ( function_exists( 'register_custom_block_style' ) ) {\n\tregister_block_style(\n\t\t'core\/image',\n\t\tarray(\n\t\t\t'name'\t=&gt; 'custom',\n\t\t\t'label'\t=&gt; __( 'Custom', 'text-domain' ),\n\t\t\t'inline_style'\t=&gt; '.wp-block-image.is-style-custom img { border-radius: 12px; }',\n\t\t)\n\t);\n}\n\nadd_action( 'init', 'register_custom_block_style' ); <\/code><\/pre>\n<p><code>register_block_style()<\/code> accepteert twee argumenten:<\/p>\n<ul>\n<li><code>$block_name<\/code>: De naam van een bloktype of een array van bloktypes<\/li>\n<li><code>$style_properties<\/code>: Een array met de stijlproperties. In dit voorbeeld hebben we <code>name<\/code>, <code>label<\/code> en <code>inline_style<\/code> gebruikt.<\/li>\n<\/ul>\n<p>De bovenstaande code genereert een blokstijlvariatie met een enkele CSS property. Zodra deze code is toegevoegd aan het <code>functions.php<\/code> bestand van je thema of childthema, verschijnt er een knop in het paneel met blokstijlen waarmee de gebruiker de stijl met \u00e9\u00e9n klik kan instellen.<\/p>\n<figure id=\"attachment_194186\" aria-describedby=\"caption-attachment-194186\" style=\"width: 2142px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194186 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/custom-style-variation.jpg\" alt=\"A custom style variation for an Image block in the Post editor\" width=\"2142\" height=\"908\"><figcaption id=\"caption-attachment-194186\" class=\"wp-caption-text\">Een aangepaste stijlvariatie voor een Image blok in de Post editor<\/figcaption><\/figure>\n<p>De volgende afbeelding toont de blokstijlvariatie in de frontend. Het thema is nog steeds Twenty Twenty-One.<\/p>\n<figure id=\"attachment_194185\" aria-describedby=\"caption-attachment-194185\" style=\"width: 2142px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194185 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/block-style-variation-php.jpg\" alt=\"Een blokstijlvariatie met Twenty Twenty-One\" width=\"2142\" height=\"1376\"><figcaption id=\"caption-attachment-194185\" class=\"wp-caption-text\">Een blokstijlvariatie met Twenty Twenty-One<\/figcaption><\/figure>\n<p>Je kunt je inline stijlen toevoegen in je PHP code, zoals in het bovenstaande voorbeeld, maar je code kan al snel moeilijk te onderhouden worden naarmate stijlen complexer en uitgebreider worden. In deze gevallen kun je de stijlvariatie registreren zoals we eerder zagen, maar de stijlen defini\u00ebren in je <code>theme.json<\/code> bestand.<\/p>\n<p>In het volgende voorbeeld maken we een donkerblauwe stijlvariatie voor het Heading blok.<\/p>\n<p>Registreer eerst de stijlvariatie in het Functions bestand van het thema:<\/p>\n<pre><code class=\"language-php\">add_action('init', 'register_block_style_labels');\n\nfunction register_block_style_labels() {\n\t$block_types = ['core\/heading'];\n\n\tif (function_exists('register_block_style')) {\n\t\tforeach ($block_types as $block_type) {\n\t\t\tregister_block_style(\n\t\t\t\t$block_type,\n\t\t\t\tarray(\n\t\t\t\t\t'name'\t=&gt; 'dark-blue-bg',\n\t\t\t\t\t'label' =&gt; __('Dark Blue', 'twentytwentyone')\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n}<\/code><\/pre>\n<p>Definieer vervolgens de variatiestijlen in je <code>theme.json<\/code> bestand:<\/p>\n<pre><code class=\"language-json\">\"settings\": {\n\t\"styles\": {\n\t\t\"blocks\": {\n\t\t\t\"core\/heading\": {\n\t\t\t\t\"variations\": {\n\t\t\t\t\t\"dark-blue-bg\": {\n\t\t\t\t\t\t\"color\": {\n\t\t\t\t\t\t\t\"background\": \"#2860a6\",\n\t\t\t\t\t\t\t\"text\": \"#ffffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"spacing\": {\n\t\t\t\t\t\t\t\"padding\": {\n\t\t\t\t\t\t\t\t\"top\": \"0.3em\",\n\t\t\t\t\t\t\t\t\"right\": \"0.4em\",\n\t\t\t\t\t\t\t\t\"bottom\": \"0.3em\",\n\t\t\t\t\t\t\t\t\"left\": \"0.4em\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}<\/code><\/pre>\n<p>Nu kunnen de gebruikers van je thema kiezen uit twee stijlvariaties voor het Heading blok, zoals in de volgende afbeelding.<\/p>\n<figure id=\"attachment_194190\" aria-describedby=\"caption-attachment-194190\" style=\"width: 2140px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194190 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/dark-blue-bg-style-variation.jpg\" alt=\"Een stijlvariatie voor het Heading blok met het Twenty Twenty-One thema\" width=\"2140\" height=\"1240\"><figcaption id=\"caption-attachment-194190\" class=\"wp-caption-text\">Een stijlvariatie voor het Heading blok met het Twenty Twenty-One thema<\/figcaption><\/figure>\n<h3>Blokvariaties<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-5-4\/#block-variations\">Blokvariaties<\/a> zijn alternatieve versies van een geregistreerd blok. Terwijl blokstijlvariaties (of blokstijlen) aangepaste versies zijn van een blokstijl die gebruikers met \u00e9\u00e9n klik kunnen toevoegen aan inhoud, zijn <a href=\"https:\/\/developer.wordpress.org\/themes\/features\/block-variations\/\" target=\"_blank\" rel=\"noopener noreferrer\">blokvariaties<\/a> alternatieve versies van de instellingen van een blok. Hiermee kunnen gebruikers snel een blok invoegen met vooraf geconfigureerde instellingen zonder dat ze voor elk blok dezelfde instellingen hoeven in te stellen.<\/p>\n<p>Met de <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-variations\/\" target=\"_blank\" rel=\"noopener noreferrer\">Block Variations API<\/a> kunnen hybride thema&#8217;s blokvariaties registreren via JavaScript. In de eenvoudigste gevallen is het maken van een script en het enqueuen ervan voldoende, maar als je veel met <a href=\"https:\/\/kinsta.com\/nl\/blog\/gutenberg-blokken\/\">JavaScript en Gutenberg blokken<\/a> werkt, wil je misschien bouwgereedschappen in je workflow opnemen. (<a href=\"https:\/\/developer.wordpress.org\/news\/2023\/07\/beyond-block-styles-part-1-using-the-wordpress-scripts-package-with-themes\/\" target=\"_blank\" rel=\"noopener noreferrer\">Leessuggestie<\/a>.)<\/p>\n<p>Stel dat je een blokvariatie wilt maken met een set vooraf geconfigureerde opties, zodat je variatie snel in je berichten of pagina&#8217;s kan worden ingevoegd met minimale extra configuratie.<\/p>\n<p>De eerste stap is het maken van een leeg JavaScript bestand en dit in de editor laden. Je moet het enqueue-en in het <code>functions.php<\/code> bestand van je thema met <code>wp_enqueue_script()<\/code> en de <code>enqueue_block_editor_assets<\/code> action hook.<\/p>\n<pre><code class=\"language-php\">add_action( 'enqueue_block_editor_assets', function () {\n\twp_enqueue_script(\n\t\t'my-block-variations',\n\t\tget_theme_file_uri( 'assets\/js\/block-variations.js' ) . '?cache_bust=' . time(),\n\t\tarray( \n\t\t\t'wp-blocks', \n\t\t\t'wp-dom-ready',\n\t\t\t'wp-i18n',\n\t\t\t'wp-edit-post'\n\t\t),\n\t\twp_get_theme()-&gt;get( 'Version' ),\n\t\ttrue\n\t);\n} );<\/code><\/pre>\n<p>In de bovenstaande code hebben we <code>?cache_bust=' . time()<\/code> gebruikt om een unieke tijdstempel toe te voegen aan de URL van <code>block-variations.js<\/code> (bijvoorbeeld <code>block-variations.js?cache_bust=1698765432<\/code>). Dit is vooral handig tijdens de ontwikkeling, omdat het ervoor zorgt dat de browser, server of CDN altijd de nieuwste versie van het script laadt, zodat een verouderde versie in de cache de weergave van wijzigingen niet blokkeert.<\/p>\n<p>Vervolgens moet je je blokvariatie in je script registreren met de functie <code>registerBlockVariation<\/code> van de <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/themes\/theme-support\/\" target=\"_blank\" rel=\"noopener noreferrer\">Block Variations API<\/a>.<\/p>\n<p>Hier is de functie signature:<\/p>\n<pre><code class=\"language-js\">const registerBlockVariation = ( blockName, variation )<\/code><\/pre>\n<ul>\n<li><code>blockName<\/code>: De naam van het blok (dus <code>core\/query<\/code>.)<\/li>\n<li><code>variation<\/code>: Een object dat een variatie beschrijft voor het type blok.<\/li>\n<\/ul>\n<p>Het <code>variation<\/code> object kan elk van de volgende parameters bevatten:<\/p>\n<ul>\n<li><code>name<\/code>: <em>(string<\/em>) Een unieke identifier van de variatie.<\/li>\n<li><code>title<\/code>: <em>(string<\/em>) Een menselijk leesbare variatietitel.<\/li>\n<li><code>description<\/code>: <em>(string<\/em>) Een gedetailleerde beschrijving.<\/li>\n<li><code>category<\/code>: <em>(string<\/em>) Een categorie gebruikt in zoekinterfaces.<\/li>\n<li><code>keywords<\/code>: <em>(Array<\/em>) Een array van termen die gebruikers helpen de variatie te ontdekken.<\/li>\n<li><code>icon<\/code>: <em>(WPIcon<\/em>) Een pictogram dat wordt weergegeven in de blokinvoegtoepassing.<\/li>\n<li><code>isDefault<\/code>: <em>(Booleaans<\/em>) Of de huidige variant de standaardvariant is. Wordt standaard op false gezet.<\/li>\n<li><code>isActive<\/code>: <em>(Functie\/Array<\/em>) Een functie of een array van blokattributen die wordt gebruikt om te bepalen of de variatie actief is wanneer het blok wordt geselecteerd. Zonder <code>isActive<\/code> zou WordPress niet weten hoe jouw variatie te onderscheiden is van een standaard blok of andere variaties, waardoor inconsistent gedrag in de editor ontstaat.<\/li>\n<li><code>attributes<\/code>: <em>(Object<\/em>) Attribuutwaarden die de standaardwaarden van blokken overschrijven.<\/li>\n<li><code>innerBlocks<\/code>: <em>(Array[]<\/em>) Beginconfiguratie van genest blok.<\/li>\n<li><code>example<\/code>: <em>(Object<\/em>) Gestructureerde gegevens voor de blokvoorvertoning. Stel in op undefined om de preview uit te schakelen.<\/li>\n<li><code>scope<\/code>: <em>(WPBlockVariationScope[]<\/em>) De lijst met scopes waarop de variatie van toepassing is. Als deze niet wordt opgegeven, worden alle beschikbare scopes aangenomen. Beschikbare opties zijn <code>block<\/code>, <code>inserter<\/code>, en <code>transform<\/code>. Standaard wordt uitgegaan van <code>block<\/code> en <code>inserter<\/code>.<\/li>\n<\/ul>\n<p>Nu kun je het JavaScript toevoegen aan het bestand <code>block-variations.js<\/code>:<\/p>\n<pre><code class=\"language-js\">wp.blocks.registerBlockVariation( 'core\/heading', { \n\tname: 'custom-centered-text', \n\ttitle: 'Custom Centered Text', \n\tdescription: 'This is a block variation with custom attributes.', \n\tattributes: { \n\t\tlevel: 2,\n\t\ttextAlign: 'center',\n\t\tplaceholder: 'Add your text here',\n\t\tstyle: {\n\t\t\tcolor: {\n\t\t\t\ttext: '#1e73be',\n\t\t\t\tbackground: '#81d742'\n\t\t\t}\n\t\t}\n\t},\n\tisActive: ( blockAttributes ) =&gt; {\n\t\treturn (\n\t\t\tblockAttributes.level === 2 &&\n\t\t\tblockAttributes.textAlign === 'center' &&\n\t\t\tblockAttributes.style?.color?.text === '#1e73be' &&\n\t\t\tblockAttributes.style?.color?.background === '#81d742'\n\t\t);\n\t},\n\ticon: 'airplane', \n\tscope: [ 'inserter' ] \n} );<\/code><\/pre>\n<p>Deze code voegt een nieuw bloktype met een vliegtuigpictogram toe aan de Block Inserter. Als je op het vliegtuigje klikt, wordt er een nieuwe blokvariant Heading tekst toegevoegd aan de pagina met je aangepaste instellingen. We stellen het Heading niveau in (<code>H2<\/code>), centreren de tekst, stellen een placeholder in en defini\u00ebren de tekst- en achtergrondkleuren van de Heading tekst.<\/p>\n<figure id=\"attachment_194382\" aria-describedby=\"caption-attachment-194382\" style=\"width: 2604px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194382 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/example-block-variation.jpg\" alt=\"Een voorbeeld blokvariatie met Twenty Twenty-One hybride thema\" width=\"2604\" height=\"1012\"><figcaption id=\"caption-attachment-194382\" class=\"wp-caption-text\">Een voorbeeld blokvariatie met Twenty Twenty-One hybride thema<\/figcaption><\/figure>\n<p>Opmerking: Om deze code naar verwachting te laten werken, moet je ervoor zorgen dat je hybride thema ondersteuning biedt voor editorfuncties zoals <code>'editor-color-palette'<\/code>, <code>editor-styles<\/code>, en andere. Kijk voor een uitgebreidere lijst met ondersteuningen op de <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/themes\/theme-support\/\" target=\"_blank\" rel=\"noopener noreferrer\">Block Variations API<\/a>.<\/p>\n<h3>Blokpatterns<\/h3>\n<p>Blokpatterns zijn vooraf samengestelde groepen blokken die je kunt toevoegen aan je inhoud en kunt aanpassen met de interface van de Block Editor.<\/p>\n<p>Blokthema&#8217;s bieden meestal een variabel aantal blokpatterns die je direct vanuit de\u00a0 Block Inserter aan je inhoud kunt toevoegen. Hybride thema&#8217;s kunnen ondersteuning voor patterns toevoegen, zodat gebruikers van klassieke thema&#8217;s kunnen profiteren van deze krachtige functie.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Er zijn verschillende manieren om patterns toe te voegen aan een WordPress thema, en we hebben ze allemaal behandeld in onze <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-blokpatronen\/\">uitgebreide gids voor WordPress patterns<\/a>.<\/p>\n<\/aside>\n\n<p>Je kunt een map <code>patterns<\/code> maken in de root van je thema en daar je blokpatterns in opnemen, of je kunt ze registreren in de <code>functions.php<\/code> of andere <code>.php<\/code> bestanden van je thema.<\/p>\n<p>Om alles op orde te houden, kun je een bestand <code>inc\/block-patterns.php<\/code> maken en het opnemen in de <code>function.php<\/code> van je thema met de volgende code:<\/p>\n<pre><code class=\"language-php\">require get_template_directory() . '\/inc\/block-patterns.php';<\/code><\/pre>\n<p>Als je dat gedaan hebt, kun je je pattern maken in de editor, de code kopi\u00ebren en je pattern en patterncategorie registreren in <code>inc\/block-patterns.php<\/code> met de functies <code>register_block_pattern_category<\/code> en <code>register_block_pattern()<\/code>:<\/p>\n<pre><code class=\"language-php\">if ( function_exists( 'register_block_pattern_category' ) ) {\n\tfunction my_hybrid_theme_register_block_pattern_category() {\n\t\tregister_block_pattern_category(\n\t\t\t'myhybridtheme',\n\t\t\tarray( 'label' =&gt; esc_html__( 'My Hybrid Theme', 'myhybridtheme' ) )\n\t\t);\n\t}\n\tadd_action( 'init', 'my_hybrid_theme_register_block_pattern_category' );\n}\n\nif ( function_exists( 'register_block_pattern' ) ) {\n\tfunction my_hybrid_theme_register_block_pattern() {\n\n\t\t\/\/ My pattern\n\t\tregister_block_pattern(\n\t\t\t'myhybridtheme\/huge-heading',\n\t\t\tarray(\n\t\t\t\t'title'\t\t\t=&gt; esc_html__( 'Huge heading', 'myhybridtheme' ),\n\t\t\t\t'categories'\t=&gt; array( 'myhybridtheme' ),\n\t\t\t\t'viewportWidth'\t=&gt; 1440,\n\t\t\t\t'blockTypes'\t=&gt; array( 'core\/heading' ),\n\t\t\t\t'content'\t\t=&gt; '&lt;!-- wp:heading {\"textAlign\":\"center\",\"align\":\"wide\",\"fontSize\":\"gigantic\",\"style\":{\"typography\":{\"lineHeight\":\"1.2\"}}} --&gt;&lt;h2 class=\"alignwide has-text-align-center has-gigantic-font-size\" style=\"line-height:1.2\"&gt;' . esc_html__( 'A simple Heading in a pattern', 'myhybridtheme' ) . '&lt;\/h2&gt;&lt;!-- \/wp:heading --&gt;',\n\t\t\t)\n\t\t);\n\t}\n\tadd_action( 'init', 'my_hybrid_theme_register_block_pattern' );\n}<\/code><\/pre>\n<p>Je kunt een voorbeeld van je pattern bekijken in je WordPress dashboard onder <b>Appearance <\/b>&gt; <b>Design <\/b>&gt; <strong>Patterns <\/strong>&gt; <strong>My Hybrid Theme <\/strong>en het gebruiken in je inhoud.<\/p>\n<figure id=\"attachment_194410\" aria-describedby=\"caption-attachment-194410\" style=\"width: 2042px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194410 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/block-patterns-in-hybrid-themes.jpg\" alt=\"Patterns in hybride thema's\" width=\"2042\" height=\"1222\"><figcaption id=\"caption-attachment-194410\" class=\"wp-caption-text\">Patterns in hybride thema&#8217;s<\/figcaption><\/figure>\n<p>Je kunt je pattern ook dupliceren en exporteren en importeren in andere WordPress websites.<\/p>\n<figure id=\"attachment_194409\" aria-describedby=\"caption-attachment-194409\" style=\"width: 2468px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194409 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/adding-pattern.jpg\" alt=\"Een pattern toevoegen vereist slechts een paar klikken\" width=\"2468\" height=\"1248\"><figcaption id=\"caption-attachment-194409\" class=\"wp-caption-text\">Een pattern toevoegen vereist slechts een paar klikken<\/figcaption><\/figure>\n<h3>Template parts<\/h3>\n<p>Hoewel hybride thema&#8217;s de klassieke PHP templates en template parts gebruikt, kun je <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/themes\/theme-support\/#block-based-template-parts\" target=\"_blank\" rel=\"noopener noreferrer\">ondersteuning voor template parts<\/a> toevoegen in het bestand <code>functions.php<\/code> van je thema:<\/p>\n<pre><code class=\"language-php\">function my_hybrid_theme_setup() {\n\tadd_theme_support( 'block-template-parts' );\n}\nadd_action( 'after_setup_theme', 'my_hybrid_theme_setup' );<\/code><\/pre>\n<p>Zodra je ondersteuning voor template parts hebt toegevoegd, kun je elk templateonderdeel in elk templatebestand van je hybride thema opnemen met behulp van de <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/block_template_part\/\" target=\"_blank\" rel=\"noopener noreferrer\">functie <code>block_template_part<\/code><\/a>.<\/p>\n<p>Laten we eens kijken naar een praktisch voorbeeld. Begin met het maken van een map <code>\/parts<\/code> in de root van je thema en upload daarin een bestand <code>footer.html<\/code>. Voor dit voorbeeld hebben we de voettekst gekopieerd van het thema Twenty Twenty-Five:<\/p>\n<pre><code class=\"language-html\">&lt;!-- wp:group {\"align\":\"full\",\"className\":\"is-style-section-5\",\"style\":{\"spacing\":{\"padding\":{\"top\":\"var:preset|spacing|60\",\"bottom\":\"var:preset|spacing|60\"}}},\"layout\":{\"type\":\"constrained\"}} --&gt;\n&lt;div class=\"wp-block-group alignfull is-style-section-5\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\"&gt;\n\t&lt;!-- wp:group {\"style\":{\"spacing\":{\"blockGap\":\"var:preset|spacing|10\"}},\"layout\":{\"type\":\"flex\",\"orientation\":\"vertical\",\"justifyContent\":\"stretch\"}} --&gt;\n\t&lt;div class=\"wp-block-group\"&gt;\n\t\t&lt;!-- wp:site-title {\"level\":2,\"textAlign\":\"center\",\"style\":{\"typography\":{\"textTransform\":\"uppercase\",\"fontStyle\":\"normal\",\"fontWeight\":\"400\"}},\"fontSize\":\"x-large\"} \/--&gt;\n\t\t&lt;!-- wp:navigation {\"overlayMenu\":\"never\",\"style\":{\"typography\":{\"textTransform\":\"uppercase\",\"fontStyle\":\"normal\",\"fontWeight\":\"400\"},\"spacing\":{\"blockGap\":\"var:preset|spacing|20\"}},\"fontSize\":\"x-large\",\"layout\":{\"type\":\"flex\",\"justifyContent\":\"center\"},\"ariaLabel\":\"Social media\"} --&gt;\n\t\t&lt;!-- wp:navigation-link {\"label\":\"Facebook\",\"url\":\"#\"} \/--&gt;\n\t\t&lt;!-- wp:navigation-link {\"label\":\"Instagram\",\"url\":\"#\"} \/--&gt;\n\t\t&lt;!-- wp:navigation-link {\"label\":\"X\",\"url\":\"#\"} \/--&gt;\n\t\t&lt;!-- \/wp:navigation --&gt;\n\t&lt;\/div&gt;\n\t&lt;!-- \/wp:group --&gt;\n\t&lt;!-- wp:spacer {\"height\":\"var:preset|spacing|30\"} --&gt;\n\t&lt;div style=\"height:var(--wp--preset--spacing--30)\" aria-hidden=\"true\" class=\"wp-block-spacer\"&gt;&lt;\/div&gt;\n\t&lt;!-- \/wp:spacer --&gt;\n\t&lt;!-- wp:paragraph {\"align\":\"center\",\"fontSize\":\"small\"} --&gt;\n\t&lt;p class=\"has-text-align-center has-small-font-size\"&gt;\n\t\tDesigned with &lt;a href=\"https:\/\/wordpress.org\" rel=\"nofollow\"&gt;WordPress&lt;\/a&gt;\n\t&lt;\/p&gt;\n\t&lt;!-- \/wp:paragraph --&gt;\n&lt;\/div&gt;\n&lt;!-- \/wp:group --&gt;<\/code><\/pre>\n<p>Nu kun je deze template part opnemen in een klassiek template met de functie <code>block_template_part<\/code>:<\/p>\n<pre><code class=\"language-php\">&lt;?php block_template_part( 'footer' ); ?&gt; <\/code><\/pre>\n<p>Je kunt het bijvoorbeeld opnemen in het bestand <code>footer.php<\/code> van Twenty Twenty-One. De volgende afbeelding toont het resultaat op het scherm.<\/p>\n<figure id=\"attachment_194501\" aria-describedby=\"caption-attachment-194501\" style=\"width: 1808px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194501 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/block-template-part.jpg\" alt=\"Een blok template onderdeel opgenomen in een hybride thema\" width=\"1808\" height=\"1252\"><figcaption id=\"caption-attachment-194501\" class=\"wp-caption-text\">Een blok template onderdeel opgenomen in een hybride thema<\/figcaption><\/figure>\n<p>Je kunt ook template parts opnemen in een bloktemplate met de volgende code:<\/p>\n<p><code class=\"language-html\">&lt;!-- wp:template-part {\"slug\":\"footer\"} \/--&gt;<\/code><\/p>\n<p>Je kunt bijvoorbeeld de code van het template <code>page.html<\/code> van Twenty Twenty-Five kopi\u00ebren:<\/p>\n<pre><code class=\"language-html\">&lt;!-- wp:template-part {\"slug\":\"header\"} \/--&gt;\n\n&lt;!-- wp:group {\"tagName\":\"main\",\"style\":{\"spacing\":{\"margin\":{\"top\":\"var:preset|spacing|60\"}}},\"layout\":{\"type\":\"constrained\"}} --&gt;\n&lt;main class=\"wp-block-group\" style=\"margin-top:var(--wp--preset--spacing--60)\"&gt;\n\t&lt;!-- wp:group {\"align\":\"full\",\"style\":{\"spacing\":{\"padding\":{\"top\":\"var:preset|spacing|60\",\"bottom\":\"var:preset|spacing|60\"}}},\"layout\":{\"type\":\"constrained\"}} --&gt;\n\t&lt;div class=\"wp-block-group alignfull\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\"&gt;\n\t\t&lt;!-- wp:post-featured-image {\"style\":{\"spacing\":{\"margin\":{\"bottom\":\"var:preset|spacing|60\"}}}} \/--&gt;\n\t\t&lt;!-- wp:post-title {\"level\":1} \/--&gt;\n\t\t&lt;!-- wp:post-content {\"align\":\"full\",\"layout\":{\"type\":\"constrained\"}} \/--&gt;\n\t&lt;\/div&gt;\n\t&lt;!-- \/wp:group --&gt;\n&lt;\/main&gt;\n&lt;!-- \/wp:group --&gt;\n\n&lt;!-- wp:template-part {\"slug\":\"footer\"} \/--&gt;<\/code><\/pre>\n<p>Sla dit template op in je <code>\/templates<\/code> map en noem het <code>page.html<\/code>. WordPress zal het automatisch laden volgens de templatehi\u00ebrarchie. Dit template zal automatisch de template parts <code>header.html<\/code> en <code>footer.html<\/code> uit de map <code>\/parts<\/code> van je hybride thema bevatten.<\/p>\n<h2>Wanneer kies je een hybride thema boven een blokthema?<\/h2>\n<p>Een hybride thema kan de beste optie zijn in de volgende scenario&#8217;s:<\/p>\n<ul>\n<li><strong>Wanneer je een paar moderne features van blokthema&#8217;s wilt gebruiken zonder een bestaande site volledig te herstructureren.<\/strong><br \/>\nMet hybride thema&#8217;s kun je gebruikmaken van blokfeatures zoals de Block Editor, global styles en blokpatterns. hybride thema&#8217;s ondersteunen ook block editor API&#8217;s zoals de <a href=\"https:\/\/kinsta.com\/nl\/blog\/block-bindings-api\/\">Block Bindings API<\/a>, <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-6-5\/#interactivity-api\">Interactivity API<\/a> en HTML API. Dit betekent dat je moderne websites kunt maken zonder dat je een complexe migratie hoeft uit te voeren.<\/li>\n<li><strong>Als je compatibiliteit met klassieke plugins of widgets wilt behouden, maar niet wilt afzien van een aantal krachtige functies van blokthema&#8217;s.<\/strong><br \/>\nOudere versies van sommige plugins kunnen compatibiliteitsproblemen hebben met blokthema&#8217;s, zoals oudere versies van Contact Form 7, NextGEN Gallery, Custom Post Type UI en andere plugins. Hoewel het wordt aanbevolen om <a href=\"https:\/\/kinsta.com\/nl\/blog\/kinsta-automatische-updates\/\">plugins bij te werken<\/a> naar de nieuwste versies om beveiligingsproblemen te voorkomen, is het mogelijk dat op sommige WordPress sites oudere versies van een plugin zijn ge\u00efnstalleerd. Als je nog niet klaar bent om al je plugins te upgraden, kun je overwegen om een hybride thema te installeren.<\/li>\n<li><strong>Als je op zoek bent naar het beste compromis tussen ontwerp en prestaties.<\/strong><br \/>\nSommige populaire hybride thema&#8217;s zijn geoptimaliseerd voor snelheid en kunnen aanzienlijk betere prestaties leveren dan blokthema&#8217;s. Toch ondersteunen ze de no-code\/low-code benadering van blokthema&#8217;s en bieden ze een betere ontwerpervaring dan klassieke thema&#8217;s. Met prestatie-geoptimaliseerde hybride thema&#8217;s zoals <a href=\"https:\/\/kinsta.com\/nl\/blog\/snelste-wordpress-thema\/#2-neve\">Neve<\/a> of Kadence kun je modern ogende websites maken zonder dat dit ten koste gaat van de prestaties.<\/li>\n<li><strong>Als je een soepele overgang naar FSE wilt.<\/strong><br \/>\nSoms kan de overgang van de oude naar de nieuwe ontwerplogica tijd kosten, vooral als je in teams aan grote sites werkt, en is de leercurve een punt van zorg. Met een hybride thema kan je team experimenteren met blokfunctionaliteit met behoud van vertrouwde ontwerptools zoals de Customizer en klassieke PHP-templates.<\/li>\n<\/ul>\n<p>Er zijn echter ook scenario&#8217;s waarbij hybride thema&#8217;s niet de beste optie zijn. Bijvoorbeeld:<\/p>\n<ul>\n<li><strong>Wanneer de ontwerptools van de site voorrang krijgen op de algemene prestaties.<\/strong><br \/>\nWanneer je bepaalde functies wilt gebruiken die specifiek zijn voor volledige sitebewerking, zoals de site-editor, volledige templatebewerking via blokken en de interface voor globale stijlen, is een hybride thema geen optie omdat deze functies niet of slechts gedeeltelijk worden ondersteund in hybride thema&#8217;s.<\/li>\n<li><strong>Met headless WordPress sites gebaseerd op de WordPress REST API.<\/strong><br \/>\nIn dit scenario verdienen blokthema&#8217;s de voorkeur omdat blokgegevens eenvoudig toegankelijk zijn via de REST API (zie bijvoorbeeld het <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/blocks\/#list-editor-blocks\">eindpunt <code>\/wp\/v2\/blocks<\/code><\/a>) of WPGraphQL, waar hybride thema&#8217;s meer complexiteit zouden kunnen toevoegen.<\/li>\n<li><strong>Wanneer een no-code benadering voor het bouwen van sites de voorkeur heeft.<\/strong><br \/>\nHybride thema&#8217;s ondersteunen het maken of bewerken van templates via de site editor niet. Hoewel ondersteuning voor template parts kan worden toegevoegd, is deze ondersteuning momenteel beperkt en het beheer van templates is voornamelijk PHP-gebaseerd.<\/li>\n<\/ul>\n<p>Het komt erop neer dat er geen harde en snelle regel is voor de keuze tussen hybride en blokthema&#8217;s. Het hangt van veel factoren af, zoals de beschikbare vaardigheden in je team, het type site dat wordt gebouwd, prestatie-eisen, achterwaartse compatibiliteit en nog veel meer.<\/p>\n<h2>Samenvatting<\/h2>\n<p>Full Site Editing en blokthema&#8217;s hebben de manier waarop we WordPress websites bouwen drastisch veranderd. Deze benadering van blokken geeft gebruikers meer mogelijkheden om complexe layouts te maken en elk aspect van een website nauwkeurig af te stellen.<\/p>\n<p>Maar als je nog niet klaar bent om de sprong te wagen omdat je site misschien niet volledig compatibel is met blokthema&#8217;s of omdat je specifieke functies van een klassiek thema nodig hebt, dan zijn hybride thema&#8217;s een optie die je het beste van twee werelden biedt door je toe te staan enkele krachtige functies van blokthema&#8217;s te gebruiken terwijl je compatibiliteit behoudt met de functies van plugins en klassieke thema&#8217;s.<\/p>\n<p>En dan hebben we het nog niet eens over de prestaties. blokthema&#8217;s kunnen veel resources gebruiken vanwege het uitgebreide renderen van blokken en het gebruik van JavaScript. Hybride thema&#8217;s met geoptimaliseerde prestaties kunnen je site lichter maken en beter laten presteren doordat er minder JavaScript nodig is.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress 5.9 introduceerde een nieuwe manier om websites te bouwen: Full Site Editing. Het was een keerpunt voor veel WordPress gebruikers omdat het de manier waarop &#8230;<\/p>\n","protected":false},"author":36,"featured_media":62703,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[902],"class_list":["post-62702","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-wordpress-themas"],"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 hybride thema&#039;s: een oplossing voor gebruikers en developers<\/title>\n<meta name=\"description\" content=\"Een diepe duik in WordPress hybride thema&#039;s: de belangrijkste features, tips voor bewerking, inzichten van developers en wanneer je ze moet kiezen in plaats van blokthema&#039;s.\" \/>\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\/hybrid-themas\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hybride thema&#039;s in WordPress: een kijkje vanuit de gebruiker en developer\" \/>\n<meta property=\"og:description\" content=\"Een diepe duik in WordPress hybride thema&#039;s: de belangrijkste features, tips voor bewerking, inzichten van developers en wanneer je ze moet kiezen in plaats van blokthema&#039;s.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/\" \/>\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=\"2025-06-12T07:19:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-16T15:45:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1470\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Een diepe duik in WordPress hybride thema&#039;s: de belangrijkste features, tips voor bewerking, inzichten van developers en wanneer je ze moet kiezen in plaats van blokthema&#039;s.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they-1024x512.png\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"Hybride thema&#8217;s in WordPress: een kijkje vanuit de gebruiker en developer\",\"datePublished\":\"2025-06-12T07:19:02+00:00\",\"dateModified\":\"2025-06-16T15:45:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/\"},\"wordCount\":3906,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png\",\"inLanguage\":\"nl-NL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/\",\"name\":\"WordPress hybride thema's: een oplossing voor gebruikers en developers\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png\",\"datePublished\":\"2025-06-12T07:19:02+00:00\",\"dateModified\":\"2025-06-16T15:45:23+00:00\",\"description\":\"Een diepe duik in WordPress hybride thema's: de belangrijkste features, tips voor bewerking, inzichten van developers en wanneer je ze moet kiezen in plaats van blokthema's.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress thema's\",\"item\":\"https:\/\/kinsta.com\/nl\/onderwerpen\/wordpress-themas\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Hybride thema&#8217;s in WordPress: een kijkje vanuit de gebruiker en developer\"}]},{\"@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\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"caption\":\"Carlo Daniele\"},\"description\":\"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.\",\"sameAs\":[\"https:\/\/frammentidicodice.com\/\",\"https:\/\/x.com\/carlodaniele\"],\"url\":\"https:\/\/kinsta.com\/nl\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WordPress hybride thema's: een oplossing voor gebruikers en developers","description":"Een diepe duik in WordPress hybride thema's: de belangrijkste features, tips voor bewerking, inzichten van developers en wanneer je ze moet kiezen in plaats van blokthema's.","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\/hybrid-themas\/","og_locale":"nl_NL","og_type":"article","og_title":"Hybride thema's in WordPress: een kijkje vanuit de gebruiker en developer","og_description":"Een diepe duik in WordPress hybride thema's: de belangrijkste features, tips voor bewerking, inzichten van developers en wanneer je ze moet kiezen in plaats van blokthema's.","og_url":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2025-06-12T07:19:02+00:00","article_modified_time":"2025-06-16T15:45:23+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"Een diepe duik in WordPress hybride thema's: de belangrijkste features, tips voor bewerking, inzichten van developers en wanneer je ze moet kiezen in plaats van blokthema's.","twitter_image":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they-1024x512.png","twitter_creator":"@carlodaniele","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Carlo Daniele","Geschatte leestijd":"25 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"Hybride thema&#8217;s in WordPress: een kijkje vanuit de gebruiker en developer","datePublished":"2025-06-12T07:19:02+00:00","dateModified":"2025-06-16T15:45:23+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/"},"wordCount":3906,"publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png","inLanguage":"nl-NL"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/","url":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/","name":"WordPress hybride thema's: een oplossing voor gebruikers en developers","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png","datePublished":"2025-06-12T07:19:02+00:00","dateModified":"2025-06-16T15:45:23+00:00","description":"Een diepe duik in WordPress hybride thema's: de belangrijkste features, tips voor bewerking, inzichten van developers en wanneer je ze moet kiezen in plaats van blokthema's.","breadcrumb":{"@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#primaryimage","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/06\/hybrid-themes-what-are-they.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/nl\/blog\/hybrid-themas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"WordPress thema's","item":"https:\/\/kinsta.com\/nl\/onderwerpen\/wordpress-themas\/"},{"@type":"ListItem","position":3,"name":"Hybride thema&#8217;s in WordPress: een kijkje vanuit de gebruiker en developer"}]},{"@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\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","caption":"Carlo Daniele"},"description":"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.","sameAs":["https:\/\/frammentidicodice.com\/","https:\/\/x.com\/carlodaniele"],"url":"https:\/\/kinsta.com\/nl\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/62702","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\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/comments?post=62702"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/62702\/revisions"}],"predecessor-version":[{"id":62726,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/62702\/revisions\/62726"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/62702\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/62702\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/62702\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/62702\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/62702\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/62702\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/62702\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/62702\/translations\/es"},{"href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/62702\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media\/62703"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media?parent=62702"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/tags?post=62702"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/topic?post=62702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}