{"id":64330,"date":"2026-01-09T09:51:18","date_gmt":"2026-01-09T08:51:18","guid":{"rendered":"https:\/\/kinsta.com\/nl\/?p=64330&#038;preview=true&#038;preview_id=64330"},"modified":"2026-01-15T08:13:02","modified_gmt":"2026-01-15T07:13:02","slug":"wordpress-block-bindings-api","status":"publish","type":"post","link":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/","title":{"rendered":"De WordPress Block Bindings API: Wat het is en hoe je het kunt gebruiken om dynamische websites te bouwen"},"content":{"rendered":"<p>De Block Bindings API is een krachtige tool in de block editor waarmee je elke databron kunt koppelen aan de attributen van een block.<\/p>\n<p>Deze API werd voor het eerst ge\u00efntroduceerd <span style=\"margin: 0px;padding: 0px\">in <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-6-5\/#block-bindings-api\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress 6.5<\/a> en<\/span> stelde WordPress gebruikers in staat om custom veldwaarden weer te geven in berichten en pagina&#8217;s.<\/p>\n<p>De Block Bindings API vormt de basis voor andere robuuste WordPress features. Voorbeelden hiervan zijn <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-6-6\/#synced-pattern-overrides\">Synced pattern overrides<\/a> en de <strong>Post Date<\/strong> blokvariatie die werd ge\u00efntroduceerd in <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-6-9\/#block-bindings-api-improvements\">WordPress 6.9<\/a>.<\/p>\n<p>Dus, wat is de Block Bindings API precies? En waar wordt het voor gebruikt? We geven een eenvoudige introductie en een praktijkvoorbeeld om te laten zien hoe je bindingen kunt maken tussen Gutenberg blokken en externe databronnen.<\/p>\n<p>Laten we aan de slag gaan.<br \/>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>De Block Bindings API: Basisconcepten<\/h2>\n<p>Zoals we hierboven al zeiden, kun je met de Block Bindings API bindingen maken tussen een databron en de attributen van een blok.<\/p>\n<p>Als je niet bekend bent met blok-attributen, navigeer dan naar de <code>src<\/code> directory van de blokkenbibliotheek van het Gutenberg project op GitHub, zoek het Paragraph blok en open het <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/blob\/trunk\/packages\/block-library\/src\/paragraph\/block.json\" target=\"_blank\" rel=\"noopener noreferrer\"><code>block.json<\/code> bestand<\/a>. De property <code>attributes<\/code> geeft een lijst van de attributen van het Paragraph blok.<\/p>\n<pre><code class=\"language-json\">\"attributes\": {\n\t\"content\": {\n\t\t\"type\": \"rich-text\",\n\t\t\"source\": \"rich-text\",\n\t\t\"selector\": \"p\",\n\t\t\"role\": \"content\"\n\t},\n\t\"dropCap\": {\n\t\t\"type\": \"boolean\",\n\t\t\"default\": false\n\t},\n\t\"placeholder\": {\n\t\t\"type\": \"string\"\n\t},\n\t\"direction\": {\n\t\t\"type\": \"string\",\n\t\t\"enum\": [ \"ltr\", \"rtl\" ]\n\t}\n},<\/code><\/pre>\n<p>De volgende blokken ondersteunen de Block Bindings API vanaf WordPress 6.9 en kunnen daarom worden gekoppeld aan je custom velden:<\/p>\n<table>\n<thead>\n<tr>\n<th>Ondersteunde blokken<\/th>\n<th>Attributen<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Paragraph<\/td>\n<td>content<\/td>\n<\/tr>\n<tr>\n<td>Title<\/td>\n<td>content<\/td>\n<\/tr>\n<tr>\n<td>Image<\/td>\n<td>id, url, alt, titel, onderschrift<\/td>\n<\/tr>\n<tr>\n<td>Button<\/td>\n<td>text, url, linkTarget, rel<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Om je customvelden te verbinden met Gutenberg blokken, moet je ze eerst <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_post_meta\/\" target=\"_blank\" rel=\"noopener noreferrer\">registreren<\/a>. De volgende code registreert een custom veld via een WordPress plugin of het <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-functions-php\/\"><code>functions.php<\/code> bestand<\/a> van je thema:<\/p>\n<pre><code class=\"language-php\">add_action( 'init', function() {\n\tregister_post_meta( 'your-post-type', 'myplugin_meta_key', [\n\t\t'show_in_rest'  =&gt; true,\n\t\t'single'        =&gt; true,\n\t\t'type'          =&gt; 'string',\n\t\t'description'   =&gt; __( 'City name', 'textdomain' ),\n\t\t'auth_callback' =&gt; 'is_user_logged_in',\n\t] );\n} );<\/code><\/pre>\n<p><code>register_post_meta<\/code> accepteert een array met attributen die de kenmerken van custom velden defini\u00ebren, en de documentatie bevat een <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_meta\/\">volledige lijst<\/a> hiervan. Om een custom veld beschikbaar te maken voor de Block Bindings API, moet je <code>show_in_rest<\/code> op true zetten. Vanaf WordPress 6.9 is <code>string<\/code> het enige ondersteunde type.<\/p>\n<p>Om de Block Bindings API in actie te zien met custom velden, maak je een nieuwe WordPress plugin en registreer je een metaveld met de bovenstaande code.<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/**\n * Plugin Name: Block Bindings example\n * Description: Example plugin that uses the Block Bindings API.\n * Version: 1.0.0\n * Author: Your Name\n * License: GPL2 or later\n * Text Domain: block-bindings-example\n *\/\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n\nadd_action( 'init', function() {\n\tregister_post_meta( '', 'block_bindings_image_url', [\n\t\t'show_in_rest'  =&gt; true,\n\t\t'single'\t    =&gt; true,\n\t\t'type'\t\t    =&gt; 'string',\n\t\t'description'   =&gt; __( 'City name', 'block-bindings-example' ),\n\t\t'auth_callback' =&gt; 'is_user_logged_in',\n\t] );\n} );<\/code><\/pre>\n<p>Activeer de plugin in je WordPress dashboard. Navigeer vervolgens naar de Posts pagina en maak een nieuw bericht aan. Wanneer je een ondersteund blok selecteert, toont het paneel <b>Attributes <\/b>in de zijbalk Block settings de lijst met attributen die kunnen worden gebonden aan een geregistreerd custom veld.<\/p>\n<figure id=\"attachment_202443\" aria-describedby=\"caption-attachment-202443\" style=\"width: 2094px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202443 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/image-block-attributes-block-bindings-ui.png\" alt=\"Blokattributen voor afbeeldingen die Block Bindings ondersteunen\" width=\"2094\" height=\"1016\"><figcaption id=\"caption-attachment-202443\" class=\"wp-caption-text\">Blokattributen voor afbeeldingen die Block Bindings ondersteunen<\/figcaption><\/figure>\n<p>Open het <strong>Options<\/strong> menu in de rechterbovenhoek en selecteer <strong>Preferences<\/strong>. Ga op het tabblad <b>General <\/b>naar de sectie <b>Advanced <\/b>en schakel custom velden in. Sla je wijzigingen op, wacht tot de pagina opnieuw is geladen en ga dan terug naar de editor.<\/p>\n<figure id=\"attachment_202434\" aria-describedby=\"caption-attachment-202434\" style=\"width: 1490px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202434 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/enable-custom-fields.png\" alt=\"Schakel custom velden in de Preferences van de editor in.\" width=\"1490\" height=\"1006\"><figcaption id=\"caption-attachment-202434\" class=\"wp-caption-text\">Schakel custom velden in de Preferences van de editor in.<\/figcaption><\/figure>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>We gaan ervan uit dat we custom velden handmatig willen toevoegen. Het maken van een interface die het invoegen van custom velden <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-6-7\/#meta-boxes-in-the-post-editor\">vereenvoudigt<\/a> valt buiten het bereik van dit artikel.<\/p>\n<\/aside>\n\n<p>De volgende stap is het invoegen van een Image blok. Met het blok geselecteerd klik je op het <strong>+<\/strong> pictogram in het <strong>Attributes<\/strong>\u00a0paneel en selecteer je het <strong>url<\/strong> attribuut. Het Attributes panel toont dan een lijst met beschikbare metavelden. Selecteer opnieuw url. Nu zie je de lijst met metavelden die beschikbaar zijn voor het huidige berichttype.<\/p>\n<figure id=\"attachment_202436\" aria-describedby=\"caption-attachment-202436\" style=\"width: 2162px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202436 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/attributes-panel-image-block.png\" alt=\"Een custom veld binden aan het url-attribuut van een Image blok in de gebruikersinterface van Block Bindings.\" width=\"2162\" height=\"930\"><figcaption id=\"caption-attachment-202436\" class=\"wp-caption-text\">Een custom veld binden aan het url-attribuut van een Image blok in de gebruikersinterface van Block Bindings.<\/figcaption><\/figure>\n<p>Selecteer je metaveld en sla het bericht op. Je zou je afbeelding nu zowel in de editor als op de voorkant moeten zien.<\/p>\n<figure id=\"attachment_202439\" aria-describedby=\"caption-attachment-202439\" style=\"width: 2162px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202439 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/block-bindings-image-url.jpg\" alt=\"Een afbeeldingsblok met het url-attribuut gebonden aan een custom veldwaarde.\" width=\"2162\" height=\"1074\"><figcaption id=\"caption-attachment-202439\" class=\"wp-caption-text\">Een afbeeldingsblok met het url-attribuut gebonden aan een custom veldwaarde.<\/figcaption><\/figure>\n<p>Vanaf <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-6-7\/\">versie 6.7 van WordPress<\/a> kun je het Label attribuut gebruiken om tekst weer te geven in de interface van de editor interface. Het volgende codeblok toont een voorbeeld:<\/p>\n<pre><code class=\"language-php\">add_action( 'init', function() {\n\tregister_post_meta( '', 'block_bindings_image_url', [\n\t\t'show_in_rest'  =&gt; true,\n\t\t'single'        =&gt; true,\n\t\t'type'          =&gt; 'string',\n\t\t'description'   =&gt; __( 'City image', 'block-bindings-example' ),\n\t\t'label'         =&gt; __('Image URL'),\n\t\t'auth_callback' =&gt; 'is_user_logged_in',\n\t] );\n} );<\/code><\/pre>\n<figure id=\"attachment_202441\" aria-describedby=\"caption-attachment-202441\" style=\"width: 2148px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202441 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/custom-field-label-in-block-bindings-ui.png\" alt=\"Custom veldlabels in de Block Bindings UI\" width=\"2148\" height=\"1134\"><figcaption id=\"caption-attachment-202441\" class=\"wp-caption-text\">Custom veldlabels in de Block Bindings UI<\/figcaption><\/figure>\n<p>Als je de code-editor opent, zie je een JSON object binnen de delimiter van het Image blok. De property <code>metadata.bindings.url<\/code> laat zien dat de <code>url<\/code> van het afbeeldingsblok is gekoppeld aan een metagegevensveld.<\/p>\n<pre><code class=\"language-html\">&lt;!-- wp:image {\n\t\"metadata\":{\n\t\t\"bindings\":{\n\t\t\t\"url\":{\n\t\t\t\t\"source\":\"core\/post-meta\",\n\t\t\t\t\"args\":{\n\t\t\t\t\t\"key\":\"block_bindings_image_url\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} --&gt;\n&lt;figure class=\"wp-block-image\"&gt;&lt;img alt=\"\/&gt;&lt;\/figure&gt;\n&lt;!-- \/wp:image --&gt;<\/code><\/pre>\n<p>De property <code>source<\/code> specificeert de databron voor de blokbindingen. De eigenschap <code>args.key<\/code> verwijst naar je metaveld.<\/p>\n<p>Het meest interessante aspect van de Block Bindings API is de mogelijkheid om eigen databronnen te registreren, wat interessante nieuwe mogelijkheden biedt voor ontwikkelaars. Hierna gaan we kijken hoe je gegevens van services van derden kunt gebruiken met de Block Bindings API.<\/p>\n<h2>Hoe je eigen Block Bindings databronnen kunt registreren: Een levensecht voorbeeld<\/h2>\n<p>Als je eenmaal bekend bent met de basisconcepten van de Block Bindings API, kunnen we verder gaan met de meer geavanceerde en interessante aspecten voor ontwikkelaars.<\/p>\n<p>Zoals eerder vermeld, kun je met de Block Bindings API custom databronnen registreren. Hiermee kun je gegevens ophalen uit een externe bron en\/of ruwe gegevens bewerken om bruikbare informatie te maken die automatisch in je content kan worden ingevoegd.<\/p>\n<p>In dit gedeelte leer je hoe je het potentieel van Block Bindings kunt maximaliseren aan de hand van een praktisch voorbeeld dat je kunt gebruiken als basis voor het ontwikkelen van je eigen custom toepassingen.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-important\">\n            <h3>Important<\/h3>\n        <p>De code in het volgende voorbeeld is alleen bedoeld als demonstratie en mag niet in productie worden gebruikt.<\/p>\n<\/aside>\n\n<p>Stel dat je gegevens wilt ophalen uit een externe bron en deze wilt weergeven in je berichten, pagina&#8217;s of <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/\">custom berichttypen<\/a>. Je zou bijvoorbeeld een API van een weerdienst kunnen bevragen door een verzoek te sturen met de lengte- en breedtegraad van een stad om realtime weergegevens op te halen, die je vervolgens op je site kunt weergeven.<\/p>\n<p>Dankzij de Block Bindings API kun je de huidige temperatuur tonen of je lezers de weersverwachting voor de komende dagen geven. Je kunt ook programmatisch het kenmerk <code>url<\/code> van een of meer afbeeldingen op de pagina wijzigen, afhankelijk van de weersomstandigheden.<\/p>\n<p>Om deze functie aan je WordPress website toe te voegen, moet je een plugin maken. Volg deze stappen:<\/p>\n<h3>Stap 1: Maak een basis plugin<\/h3>\n<p>De eerste stap is het maken van de plugin bestanden. Navigeer naar de <code>wp-content\/plugins<\/code> map van je WordPress installatie en maak een nieuwe map aan met de naam <code>block-bindings-example<\/code>. Voeg in deze map de volgende bestanden toe:<\/p>\n<pre><code>\/wp-content\/plugins\/\n\u2514\u2500\u2500 \/block-bindings-example\/\n\t\u251c\u2500\u2500 block-bindings-example.php\n\t\u2514\u2500\u2500 \/includes\/\n\t\t\u251c\u2500\u2500 binding-sources.php\n\t\t\u251c\u2500\u2500 meta-fields.php\n\t\t\u2514\u2500\u2500 weather-api.php<\/code><\/pre>\n<p>Open het <code>block-bindings-example.php<\/code> bestand in je favoriete <a href=\"https:\/\/kinsta.com\/nl\/blog\/gratis-html-editors\/\">code editor<\/a> en voeg de volgende code toe:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/**\n * Plugin Name: Block Bindings Example\n * Description: Use WordPress Block Bindings API (6.5+) to dynamically bind weather data from Open-Meteo API to Gutenberg blocks using custom post meta and a custom binding source.\n * Version: 1.0.0\n * Author: Your Name\n * License: GPL2 or later\n * Text Domain: block-bindings-example\n *\/\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit; \/\/ Exit if accessed directly\n}\n\n\/**\n * Cache duration for weather data: 30 minutes\n * This reduces API calls and improves performance\n *\/\ndefine( 'BB_WEATHER_CACHE_TIME', HOUR_IN_SECONDS \/ 2 );\n\nrequire_once plugin_dir_path( __FILE__ ) . 'includes\/meta-fields.php';\nrequire_once plugin_dir_path( __FILE__ ) . 'includes\/binding-sources.php';\nrequire_once plugin_dir_path( __FILE__ ) . 'includes\/weather-api.php';\n\n\/**\n * Setup function\n *\/\nfunction bb_init_setup() {\n\tbb_register_post_meta();\n\tbb_register_binding_sources();\n}\nadd_action( 'init', 'bb_init_setup' );<\/code><\/pre>\n<p>Dit is wat deze code doet:<\/p>\n<ul>\n<li>De constante <code>BB_WEATHER_CACHE_TIME<\/code> bepaalt hoe lang weergegevens in de cache worden opgeslagen. Dit vermindert API-calls, verbetert de paginaprestaties en verlaagt de servicekosten.<\/li>\n<li>De <code>require_once<\/code> expressies bevatten de benodigde scripts om metavelden te registreren, de bindingsbron te registreren en gegevens op te halen uit de API.<\/li>\n<li>De setup-functie roept twee functies aan die de post metavelden en de custom bindingsbronnen registreren.<\/li>\n<\/ul>\n<h3>Stap 2: Registreer de post metavelden<\/h3>\n<p>De volgende stap is het registreren van de metavelden die je nodig hebt voor je use case. Open het bestand <code>meta-fields.php<\/code> in de map <code>includes<\/code> en voeg de volgende code toe:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/**\n * Registers custom post meta fields so they appear in the REST API and Block Bindings editor panel\n *\/\nfunction bb_register_post_meta() {\n\n\tif ( ! function_exists( 'register_post_meta' ) ) {\n\t\treturn;\n\t}\n\n\tregister_post_meta( 'post', 'block_bindings_city_name', [\n\t\t'show_in_rest'  =&gt; true,\n\t\t'single'        =&gt; true,\n\t\t'type'          =&gt; 'string',\n\t\t'description'   =&gt; __( 'Add city name', 'block-bindings-example' ),\n\t\t'label'         =&gt; __( 'City name', 'block-bindings-example' ),\n\t\t'auth_callback' =&gt; 'is_user_logged_in',\n\t] \u10dd\u10de\u10dd\u10d6\n\n\tregister_post_meta( 'post', 'block_bindings_image_url', [\n\t\t'show_in_rest'  =&gt; true,\n\t\t'single'        =&gt; true,\n\t\t'type'          =&gt; 'string',\n\t\t'description'   =&gt; __( 'Add city image URL', 'block-bindings-example' ),\n\t\t'label'         =&gt; __( 'City image URL', 'block-bindings-example' ),\n\t\t'auth_callback' =&gt; 'is_user_logged_in',\n\t] );\n\n\tregister_post_meta( 'post', 'block_bindings_city_lat', [\n\t\t'show_in_rest'  =&gt; true,\n\t\t'single'        =&gt; true,\n\t\t'type'          =&gt; 'string',\n\t\t'description'   =&gt; __( 'Add city latitude', 'block-bindings-example' ),\n\t\t'label'         =&gt; __( 'Latitude', 'block-bindings-example' ),\n\t\t'auth_callback' =&gt; 'is_user_logged_in',\n\t] );\n\n\tregister_post_meta( 'post', 'block_bindings_city_lng', [\n\t\t'show_in_rest'  =&gt; true,\n\t\t'single'        =&gt; true,\n\t\t'type'          =&gt; 'string',\n\t\t'description'   =&gt; __( 'Add city longitude', 'block-bindings-example' ),\n\t\t'label'         =&gt; __( 'Longitude', 'block-bindings-example' ),\n\t\t'auth_callback' =&gt; 'is_user_logged_in',\n\t] );\n}<\/code><\/pre>\n<p>De functie <code>register_post_meta<\/code> registreert een metasleutel voor gebruik in posts. Let erop dat je, om metavelden die op deze manier zijn geregistreerd te gebruiken met de Block Bindings API, <code>show_in_rest<\/code> moet instellen op <code>true<\/code> en <code>type<\/code> op <code>string<\/code>. Zie de <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_post_meta\/\" target=\"_blank\" rel=\"noopener noreferrer\">documentatie<\/a> voor meer informatie.<\/p>\n<h3>Stap 3: Registreer de Block Bindings bron<\/h3>\n<p>Het is tijd om je bindingsbron te registreren. Open het bestand <code>binding-sources.php<\/code> en voeg de volgende code toe:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/**\n * Registers a custom Block Bindings source: bb\/weather-condition\n *\/\nfunction bb_register_binding_sources() {\n\n\tif ( ! function_exists( 'register_block_bindings_source' ) ) {\n\t\treturn;\n\t}\n\t\n\tregister_block_bindings_source(\n\t\t'bb\/weather-condition',\n\t\t[\n\t\t\t'label'              =&gt; __( 'Weather Condition', 'block-bindings-example' ),\n\t\t\t'get_value_callback' =&gt; 'bb_get_weather_condition_value',\n\t\t\t'uses_context'       =&gt; [ 'postId' ], \/\/ We need postId to get meta values\n\t\t]\n\t);\n}<\/code><\/pre>\n<p>De functie <code>register_block_bindings_source()<\/code> vereist de bronnaam en een callbackfunctie die gegevens ophaalt van een bron en de bewerkte waarde retourneert.<\/p>\n<p>Definieer vervolgens in hetzelfde <code>binding-sources.php<\/code> bestand de callbackfunctie.<\/p>\n<pre><code class=\"language-php\">function bb_get_weather_condition_value( array $source_args, WP_Block $block_instance ) {\n\n\t$key = $source_args['key'] ?? null;\n\tif ( ! $key ) {\n\t\treturn null;\n\t}\n\n\t\/\/ Get current post ID from block context (always available in post content)\n\t$post_id = $block_instance-&gt;context['postId'] ?? null;\n\n\t\/\/ Fallback: use global loop if context is missing\n\tif ( ! $post_id && in_the_loop() ) {\n\t\t$post_id = get_the_ID();\n\t}\n\n\tif ( ! $post_id || $post_id &lt;= 0 ) {\n\t\terror_log( 'BB DEBUG: Could not determine post ID for weather binding' );\n\t\treturn null;\n\t}\n\n\t$weather_data = bb_fetch_and_cache_weather_data( $post_id );\n\n\tif ( ! is_array( $weather_data ) || ! isset( $weather_data[ $key ] ) ) {\n\t\treturn null;\n\t}\n\n\t$value = $weather_data[ $key ];\n\n\t\/\/ Append \u00b0C symbol for temperature\n\tif ( $key === 'temperature' ) {\n\t\treturn $value . '\u00b0C';\n\t}\n\n\treturn $value;\n}<\/code><\/pre>\n<p>Laten we deze functie opsplitsen:<\/p>\n<ul>\n<li><code>$source_args['key']<\/code> identificeert de gegevens die gebonden zijn aan het blokattribuut.<\/li>\n<li>De volgende regel haalt het ID van het huidige bericht op uit <code>context<\/code>. Als <code>context<\/code> ontbreekt, zoals het geval kan zijn bij previews, wordt het ID van het huidige bericht opgehaald met <code>get_the_ID()<\/code>.<\/li>\n<li>Vervolgens wordt de functie <code>bb_fetch_and_cache_weather_data<\/code> gecallt, die de gegevens van de API ophaalt. We defini\u00ebren deze functie in de volgende stap.<\/li>\n<li><code>$weather_data[$key]<\/code> bevat de gegevens die door de API worden geleverd, zoals de temperatuur en de weerstoestand.<\/li>\n<li>Als de sleutel <code>temperature<\/code> is, wordt <code>\u00b0C<\/code> toegevoegd aan de geleverde waarde.<\/li>\n<li>De functie retourneert vervolgens de uiteindelijke waarde.<\/li>\n<\/ul>\n<h3>Stap 4: Haal de data op uit een externe bron<\/h3>\n<p>Zoals hierboven vermeld, halen we gegevens op van de <a href=\"https:\/\/open-meteo.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Open-Meteo service<\/a> (gratis voor niet-commercieel gebruik).<\/p>\n<p>Om de huidige temperatuur en weersomstandigheden op te halen, moet je een verzoek naar de API sturen met de lengte- en breedtegraad van een bepaalde locatie en de query var <code>current=weather_code,temperature_2m<\/code>. Hieronder zie je een voorbeeldverzoek:<\/p>\n<pre><code>https:\/\/api.open-meteo.com\/v1\/forecast?latitude=-33.8717&longitude=151.2299&current=weather_code,temperature_2m<\/code><\/pre>\n<p>De API geeft een antwoord dat lijkt op het volgende:<\/p>\n<pre><code class=\"language-json\">{\n\t\"latitude\": -33.8717,\n\t\"longitude\": 151.2299,\n\t\"generationtime_ms\": 0.030875205993652344,\n\t\"utc_offset_seconds\": 0,\n\t\"timezone\": \"GMT\",\n\t\"timezone_abbreviation\": \"GMT\",\n\t\"elevation\": 13.0,\n\t\"current_units\": {\n\t\t\"time\": \"iso8601\",\n\t\t\"interval\": \"seconds\",\n\t\t\"weather_code\": \"wmo code\",\n\t\t\"temperature_2m\":\"\u00b0C\"\n\t},\n\t\"current\": {\n\t\t\"time\": \"2025-12-01T16:00\",\n\t\t\"interval\": 900,\n\t\t\"weather_code\": 3,\n\t\t\"temperature_2m\":7.3\n\t}\n}<\/code><\/pre>\n<figure id=\"attachment_202460\" aria-describedby=\"caption-attachment-202460\" style=\"width: 2336px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202460 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/postman-for-vsc.png\" alt=\"Open-Meteo-antwoord in Postman voor Visual Studio Code\" width=\"2336\" height=\"1642\"><figcaption id=\"caption-attachment-202460\" class=\"wp-caption-text\">Open-Meteo-antwoord in Postman voor Visual Studio Code<\/figcaption><\/figure>\n<p>Nu je weet hoe je de gegevens krijgt die je nodig hebt, open je het bestand <code>weather-api.php<\/code> en voeg je de volgende code toe:<\/p>\n<pre><code class=\"language-php\">function bb_fetch_and_cache_weather_data( $post_id ) {\n\t$lat = get_post_meta( $post_id, 'block_bindings_city_lat', true );\n\t$lng = get_post_meta( $post_id, 'block_bindings_city_lng', true );\n\n\t$lat = str_replace( ',', '.', trim( $lat ) );\n\t$lng = str_replace( ',', '.', trim( $lng ) );\n\n\tif ( ! is_numeric( $lat ) || ! is_numeric( $lng ) ) {\n\t\terror_log( 'BB DEBUG: Invalid latitude\/longitude values after normalization' );\n\t\treturn false;\n\t}\n\n\t$transient_key = 'bb_weather_data_' . $post_id;\n\t$cached_data   = get_transient( $transient_key );\n\n\tif ( $cached_data !== false ) {\n\t\terror_log( \"BB DEBUG: Cache hit for post ID {$post_id}\" );\n\t\treturn $cached_data;\n\t}\n\n\t\/\/ Build Open-Meteo API URL\n\t$api_url = sprintf(\n\t\t'https:\/\/api.open-meteo.com\/v1\/forecast?latitude=%s&longitude=%s&current=weather_code,temperature_2m',\n\t\trawurlencode( $lat ),\n\t\trawurlencode( $lng )\n\t);\n\n\terror_log( \"BB DEBUG: Fetching weather data from: {$api_url}\" );\n\n\t$response = wp_remote_get( $api_url, [ 'timeout' =&gt; 10 ] );\n\n\tif ( is_wp_error( $response ) ) {\n\t\terror_log( 'BB DEBUG: API request failed \u2013 ' . $response-&gt;get_error_message() );\n\t\treturn false;\n\t}\n\n\tif ( wp_remote_retrieve_response_code( $response ) !== 200 ) {\n\t\terror_log( 'BB DEBUG: API returned non-200 status code' );\n\t\treturn false;\n\t}\n\n\t$body = wp_remote_retrieve_body( $response );\n\t$data = json_decode( $body, true );\n\n\tif ( ! $data || ! isset( $data['current'] ) ) {\n\t\terror_log( 'BB DEBUG: Invalid or empty API response' );\n\t\treturn false;\n\t}\n\n\t$temperature  = $data['current']['temperature_2m'] ?? null;\n\t$weather_code = $data['current']['weather_code'] ?? 0;\n\n\t$mapped_data = [\n\t\t'temperature'    =&gt; round( (float) $temperature ),\n\t\t'weather_state'  =&gt; bb_map_wmo_code_to_state( (int) $weather_code ),\n\t];\n\n\t\/\/ Cache for 30 minutes\n\tset_transient( $transient_key, $mapped_data, BB_WEATHER_CACHE_TIME );\n\n\terror_log( 'BB DEBUG: Weather data fetched and cached successfully' );\n\n\treturn $mapped_data;\n}<\/code><\/pre>\n<p>Deze functie haalt actuele weergegevens op van de Open-Meteo API en slaat deze op in de cache met behulp van <a href=\"https:\/\/kinsta.com\/nl\/blog\/wp-options-autoloaded-data\/#clean-up-transients\">transients<\/a>. Laten we het eens van dichterbij bekijken.<\/p>\n<ul>\n<li>Twee calls naar <code>get_post_meta<\/code> halen de breedtegraad en lengtegraad van je locatie op.<\/li>\n<li>De volgende twee regels normaliseren het decimale scheidingsteken voor het geval de gebruiker een komma invoert in plaats van een punt.<\/li>\n<li>Het voorwaardelijke blok controleert of de waarden numeriek zijn met <code>is_numeric()<\/code>.<\/li>\n<li>Vervolgens wordt gecontroleerd of de gegevens in de cache zitten. Zo ja, dan worden de gegevens uit de cache geretourneerd en stopt de functie zonder een verzoek naar de API te sturen.<\/li>\n<li>Als er geen gegevens in de cache zijn gevonden, wordt het verzoek gemaakt en het antwoord opgeslagen.<\/li>\n<li>De volgende regels halen <code>temperature<\/code> en <code>weather_code<\/code> op.<\/li>\n<li><code>weather_code<\/code> wordt gekoppeld aan <code>weather_state<\/code> via de functie <code>bb_map_wmo_code_to_state<\/code>, die hieronder wordt gedefinieerd.<\/li>\n<li>De gegevens worden opgeslagen met <code>set_transient<\/code>.<\/li>\n<li>Tot slot geeft de functie de gemapte gegevens terug.<\/li>\n<\/ul>\n<p>Definieer als laatste de functie die <code>weather_code<\/code> vertaalt naar een menselijk leesbare string:<\/p>\n<pre><code class=\"language-php\">function bb_map_wmo_code_to_state( $code ) {\n\tif ( $code &gt;= 0 && $code &lt;= 3 ) {\n\t\treturn 'clear';\n\t} elseif ( $code &gt;= 51 && $code &lt;= 67 ) {\n\t\treturn 'rainy';\n\t} elseif ( $code &gt;= 71 && $code &lt;= 77 ) {\n\t\treturn 'snowy';\n\t} elseif ( $code &gt;= 95 ) {\n\t\treturn 'thunderstorm';\n\t}\n\treturn 'cloudy';\n}<\/code><\/pre>\n<p>De code is compleet en je plugin is klaar om getest te worden.<\/p>\n<h2>De Block Bindings API gebruiken<\/h2>\n<p>Het is tijd om te leren hoe je de nieuwe functies kunt gebruiken die aan je site zijn toegevoegd met de Block Bindings API!<\/p>\n<p>Navigeer in je WordPress dashboard naar het Plugins scherm en activeer de <strong>Block Bindings Example<\/strong> plugin die je zojuist hebt gemaakt.<\/p>\n<figure id=\"attachment_202462\" aria-describedby=\"caption-attachment-202462\" style=\"width: 2300px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202462 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/plugins-screen.png\" alt=\"Plugins pagina\" width=\"2300\" height=\"1246\"><figcaption id=\"caption-attachment-202462\" class=\"wp-caption-text\">Activeer de plugin in je WordPress dashboard.<\/figcaption><\/figure>\n<p>Maak daarna een nieuw bericht of pagina. Voeg een Image blok toe, een titel en vier blokken Rows met elk twee alinea&#8217;s, zoals in de afbeelding hieronder. Sla het bericht vervolgens op.<\/p>\n<figure id=\"attachment_202463\" aria-describedby=\"caption-attachment-202463\" style=\"width: 1432px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202463 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/adding-blocks.png\" alt=\"Voeg blokken toe aan het canvas van de editor.\" width=\"1432\" height=\"1084\"><figcaption id=\"caption-attachment-202463\" class=\"wp-caption-text\">Voeg blokken toe aan het canvas van de editor.<\/figcaption><\/figure>\n<p>Voeg vervolgens je custom velden toe en sla het bericht opnieuw op.<\/p>\n<figure id=\"attachment_202464\" aria-describedby=\"caption-attachment-202464\" style=\"width: 1728px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202464 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/add-custom-fields.png\" alt=\"Custom velden toevoegen aan het bericht.\" width=\"1728\" height=\"850\"><figcaption id=\"caption-attachment-202464\" class=\"wp-caption-text\">Custom velden toevoegen aan het bericht.<\/figcaption><\/figure>\n<p>Selecteer het blok Afbeelding en zoek het paneel <strong>Attributes<\/strong> in de zijbalk van de blokinstellingen. Klik op de knop <strong>+<\/strong> om het vervolgkeuzemenu te openen dat de lijst met attributen van het Image blok weergeeft die blokbindingen ondersteunen. Selecteer het item <strong>url<\/strong>.<\/p>\n<figure id=\"attachment_202443\" aria-describedby=\"caption-attachment-202443\" style=\"width: 2094px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202443 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/image-block-attributes-block-bindings-ui.png\" alt=\"Attributen van het afbeeldingsblok die blokbindingen ondersteunen\" width=\"2094\" height=\"1016\"><figcaption id=\"caption-attachment-202443\" class=\"wp-caption-text\">Attributen van het afbeeldingsblok die blokbindingen ondersteunen<\/figcaption><\/figure>\n<p>Nadat je het blokattribuut hebt geselecteerd, verschijnt op het tabblad <b>Advanced <\/b>een nieuw <strong>URL-element<\/strong> met de beschrijving &#8220;Not connected&#8221; Klik nogmaals op het <strong>url-item<\/strong> om de lijst met beschikbare bindingsbronnen te bekijken. <strong>Post Meta<\/strong> toont de vier custom velden die zijn geregistreerd voor het posttype, samen met hun respectievelijke waarden. Selecteer <strong>City image URL<\/strong>.<\/p>\n<figure id=\"attachment_202467\" aria-describedby=\"caption-attachment-202467\" style=\"width: 2300px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202467 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/registered-post-meta-fields.png\" alt=\"Een screenshot van de Block Bindings UI\" width=\"2300\" height=\"902\"><figcaption id=\"caption-attachment-202467\" class=\"wp-caption-text\">Verbind geregistreerde metavelden.<\/figcaption><\/figure>\n<p>Je hebt het <strong>City Image URL<\/strong> meta veld toegewezen aan het <strong>url<\/strong> attribuut van het Image blok. Je zou nu een foto moeten zien van de stad die je hebt gekozen.<\/p>\n<p>Volg hetzelfde proces voor de andere metavelden. Wijs het <strong>City Name<\/strong> veld toe aan het <code>content<\/code> attribuut van het Heading blok en de <strong>Latitude<\/strong> en <strong>Longitude<\/strong> velden aan de corresponderende Paragraph blokken.<\/p>\n<p>Verbind nu de laatste twee blokken met je custom bindingsbron. Helaas is deze optie, zoals je in de vorige screenshots hebt gezien, niet beschikbaar in de editor UI.<\/p>\n<p>Daarom moet je nu overschakelen naar de code-editor en handmatig de opmaak schrijven voor de twee blokken die zijn gekoppeld aan je bindingsbron. Hieronder staat de code om de temperatuur weer te geven die wordt geleverd door de Open-Meteo service:<\/p>\n<pre><code class=\"language-json\">&lt;!-- wp:paragraph {\n\t\"metadata\":{\n\t\t\"bindings\":{\n\t\t\t\"content\":{\n\t\t\t\t\"source\":\"bb\/weather-condition\",\n\t\t\t\t\"args\":{\n\t\t\t\t\t\"key\":\"temperature\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} --&gt;\n&lt;p&gt;Placeholder&lt;\/p&gt;\n&lt;!-- \/wp:paragraph --&gt;<\/code><\/pre>\n<p>Met deze methode verschijnt de naam van je bindingsbron in de editor als <strong>Weather condition<\/strong>, maar de echte gegevens zijn alleen zichtbaar in de frontend.<\/p>\n<figure id=\"attachment_202470\" aria-describedby=\"caption-attachment-202470\" style=\"width: 2292px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202470 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/block-bindings-example.jpg\" alt=\"Een voorbeeld van blokbindingen met custom databronnen\" width=\"2292\" height=\"1358\"><figcaption id=\"caption-attachment-202470\" class=\"wp-caption-text\">Een voorbeeld van blokbindingen met custom databronnen<\/figcaption><\/figure>\n<p>Het is duidelijk dat het handmatig toevoegen van een JSON object aan de blokopmaak niet gebruiksvriendelijk is. Gelukkig heeft <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-6-9\/\">WordPress 6.9<\/a> flinke verbeteringen aangebracht in de Block Bindings API, waardoor het mogelijk is om een UI te maken voor custom databronnen. Laten we proberen onze plugin te verbeteren met een custom UI.<\/p>\n<h2>Hoe maak je een gebruikersinterface voor je eigen Block Bindings bronnen?<\/h2>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-important\">\n            <h3>Important<\/h3>\n        <p>We hebben dit deel van het project uitgesteld omdat de benodigde functies alleen beschikbaar zijn in WordPress 6.9 en latere versies. De volgende code werkt niet als je een eerdere versie van WordPress gebruikt.<\/p>\n<\/aside>\n\n<p>Om een UI te maken voor je custom bindingsbron, moet je JavaScript code schrijven. Maak eerst een <code>js<\/code> submap onder <code>\/includes<\/code> en maak daarbinnen een <strong>block-bindings-ui.js<\/strong> bestand. De structuur van de plugin ziet er nu als volgt uit:<\/p>\n<pre><code>\/wp-content\/plugins\/\n\u2514\u2500\u2500 \/block-bindings-example\/\n\t\u251c\u2500\u2500 block-bindings-example.php\n\t\u2514\u2500\u2500 \/includes\/\n\t\t\u251c\u2500\u2500 binding-sources.php\n\t\t\u251c\u2500\u2500 meta-fields.php\n\t\t\u2514\u2500\u2500 weather-api.php\n\t\t\t\u2514\u2500\u2500 \/js\/\n\t\t\t\t\u2514\u2500\u2500\tblock-bindings-ui.js<\/code><\/pre>\n<p>Als eerste stap voeg je het JS script toe aan het hoofdbestand van je plugin:<\/p>\n<pre><code class=\"language-php\">function bb_enqueue_weather_bindings_ui() {\n\n\tif ( ! function_exists( 'register_block_bindings_source' ) ) {\n\t\treturn;\n\t}\n\n\t$js_file_path = plugin_dir_path( __FILE__ ) . 'includes\/js\/block-bindings-ui.js';\n\n\tif ( ! file_exists( $js_file_path ) ) {\n\t\treturn;\n\t}\n\n\t\/\/ Enqueue the script only in the editor\n\twp_enqueue_script(\n\t\t'bb-weather-bindings-ui',\n\t\tplugin_dir_url( __FILE__ ) . 'includes\/js\/block-bindings-ui.js',\n\t\t[ 'wp-blocks', 'wp-element', 'wp-dom-ready', 'wp-block-bindings' ],\n\t\tfilemtime( $js_file_path ),\n\t\ttrue\n\t);\n}\nadd_action( 'enqueue_block_editor_assets', 'bb_enqueue_weather_bindings_ui' );<\/code><\/pre>\n<p>Dit is wat deze functie doet:<\/p>\n<ul>\n<li>Eerst controleert het of de <code>register_block_bindings_source()<\/code> functie bestaat.<\/li>\n<li>Vervolgens wordt gecontroleerd of het bestand <code>block-bindings-ui.js<\/code> bestaat in de map <code>\/includes\/js<\/code> van de plugin.<\/li>\n<li>De <code>wp_enqueue_script()<\/code> functie laadt het script in voor gebruik in de editor. Raadpleeg de <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_enqueue_script\/\" target=\"_blank\" rel=\"noopener noreferrer\">documentatie<\/a> voor een gedetailleerde beschrijving van de functie.<\/li>\n<li>Het gebruikt de <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/enqueue_block_editor_assets\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>enqueue_block_editor_assets<\/code> hook<\/a> om scripts te queuen voor de bewerkingsinterface.<\/li>\n<\/ul>\n<p>Open nu het bestand <code>block-bindings-ui.js<\/code> en schrijf de volgende code:<\/p>\n<pre><code class=\"language-javascript\">wp.blocks.registerBlockBindingsSource({\n\tname: 'bb\/weather-condition',\n\tlabel: 'Weather Condition',\n\tuseContext: [ 'postId', 'postType' ],\n\tgetValues: ( { bindings } ) =&gt; {\n\t\tif ( bindings.content?.args?.key === 'temperature' ) {\n\t\t\treturn {\n\t\t\t\tcontent: 'Current temperature provided by Open-Meteo.',\n\t\t\t};\n\t\t}\n\t\tif ( bindings.content?.args?.key === 'weather_state' ) {\n\t\t\treturn {\n\t\t\t\tcontent: 'Current conditions.',\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tcontent: bindings.content,\n\t\t};\n\t},\n\tgetFieldsList() {\n\t\treturn [\n\t\t\t{ label: 'Temperature (\u00b0C)',   type: 'string', args: { key: 'temperature' } },\n\t\t\t{ label: 'Weather Conditions',  type: 'string', args: { key: 'weather_state' } }\n\t\t];\n\t}\n});<\/code><\/pre>\n<ul>\n<li>De functie <code>registerBlockBindingsSource()<\/code> registreert een bindingsbron in de block editor.<\/li>\n<li><code>name<\/code> is een unieke identificatie voor je bindingsbron. Het moet precies overeenkomen met de naam die in PHP wordt gebruikt met <code>register_block_bindings_source()<\/code>.<\/li>\n<li><code>label<\/code> is een menselijk leesbare naam die wordt weergegeven in de <b>Source <\/b>dropdown van het <strong>Attributes <\/strong>panel.<\/li>\n<li><code>useContext<\/code> stelt de contextwaarden in die deze bron nodig heeft van het blok. <code>postId<\/code> is nodig zodat de bron weet welke meta\/weergegevens van de post hij moet lezen.<\/li>\n<li><code>getValues<\/code> geeft een voorbeeld van de gebonden waarde in de block editor. Het geeft de opties terug die verschijnen in de dropdown nadat de gebruiker de bindingsbron heeft geselecteerd (&#8220;Weerconditie&#8221; in ons voorbeeld). Deze methode is beschikbaar sinds WordPress 6.9.<\/li>\n<li><code>getFieldsList<\/code> geeft de opties terug die in de vervolgkeuzelijst verschijnen nadat de gebruiker de bindingsbron heeft geselecteerd (&#8220;Weersomstandigheden&#8221; in ons voorbeeld).<\/li>\n<\/ul>\n<p>Sla het bestand op en ga terug naar de editor. Je bron voor de <strong>Weather Condition<\/strong> is nu beschikbaar in de editor UI, naast <strong>Post Meta<\/strong>. Herlaad de pagina en koppel een Paragraph of Heading blok aan je bindingsbron. De afbeelding hieronder toont het resultaat.<\/p>\n<figure id=\"attachment_202472\" aria-describedby=\"caption-attachment-202472\" style=\"width: 2112px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202472 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/custom-binding-source-ui.png\" alt=\"Custom blokbindingsbron UI\" width=\"2112\" height=\"992\"><figcaption id=\"caption-attachment-202472\" class=\"wp-caption-text\">Custom blokbindingsbron UI<\/figcaption><\/figure>\n<p>De laatste afbeelding toont het resultaat op de frontend van de website.<\/p>\n<figure id=\"attachment_202474\" aria-describedby=\"caption-attachment-202474\" style=\"width: 1374px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-202474 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/12\/custom-data-with-block-bindings.jpg\" alt=\"Een bericht dat gegevens toont van een externe bindingsbron\" width=\"1374\" height=\"986\"><figcaption id=\"caption-attachment-202474\" class=\"wp-caption-text\">Een bericht dat gegevens toont van een externe bindingsbron<\/figcaption><\/figure>\n<h2>Wat kun je nog meer doen met de Block Bindings API?<\/h2>\n<p>Dit artikel is slechts een tipje van de sluier van wat je kunt bouwen met de Block Bindings API. Het mooie is dat de ontwikkeling van deze krachtige WordPress feature nog lang niet klaar is en dat we in de toekomst nieuwe implementaties en toevoegingen kunnen verwachten.<\/p>\n<p>Door de Block Bindings API te integreren met andere krachtige WordPress API&#8217;s, zoals de <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-interactivity-api\/\">Interactivity API<\/a>, kun je dynamische, interactieve toepassingen bouwen die veel verder gaan dan de traditionele blogfuncties waarmee WordPress in de beginjaren populair werd.<\/p>\n<p>WordPress is niet langer alleen een blogplatform of een websitebouwer. Het is nu klaar om een multifunctioneel ontwikkelplatform te worden voor allerlei soorten webapplicaties.<\/p>\n<p>Hoe krachtiger je applicaties zijn, hoe belangrijker je hostingservice wordt. Kinsta biedt Premium managed hosting met hoge prestaties, robuuste beveiliging, uitgebreide automatisering en eersteklas ondersteuning die door <a href=\"https:\/\/kinsta.com\/nl\/blog\/g2-awards\/\">G2-gebruikers<\/a> wordt erkend als toonaangevend in de sector.<\/p>\n<p>De krachtigste webapplicaties vragen om de beste hostinginfrastructuur. Neem een kijkje bij <a href=\"https:\/\/kinsta.com\/nl\/prijzen\/\">de pakketten van Kinsta<\/a> om het pakket te vinden dat het beste past bij de behoeften van je site.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>De Block Bindings API is een krachtige tool in de block editor waarmee je elke databron kunt koppelen aan de attributen van een block. Deze API &#8230;<\/p>\n","protected":false},"author":36,"featured_media":64331,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[892],"class_list":["post-64330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","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>De WordPress Block Bindings API: Wat het is en hoe je het gebruikt<\/title>\n<meta name=\"description\" content=\"Alles wat je moet weten over de WordPress Block Bindings API, een krachtige WordPress-API voor ontwikkelaars om elke databron in hun websites te integreren.\" \/>\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-block-bindings-api\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"De WordPress Block Bindings API: Wat het is en hoe je het kunt gebruiken om dynamische websites te bouwen\" \/>\n<meta property=\"og:description\" content=\"Alles wat je moet weten over de WordPress Block Bindings API, een krachtige WordPress-API voor ontwikkelaars om elke databron in hun websites te integreren.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/\" \/>\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=\"2026-01-09T08:51:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-15T07:13:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.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=\"Alles wat je moet weten over de WordPress Block Bindings API, een krachtige WordPress-API voor ontwikkelaars om elke databron in hun websites te integreren.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.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=\"20 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-block-bindings-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"De WordPress Block Bindings API: Wat het is en hoe je het kunt gebruiken om dynamische websites te bouwen\",\"datePublished\":\"2026-01-09T08:51:18+00:00\",\"dateModified\":\"2026-01-15T07:13:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/\"},\"wordCount\":2667,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png\",\"inLanguage\":\"nl-NL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/\",\"name\":\"De WordPress Block Bindings API: Wat het is en hoe je het gebruikt\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png\",\"datePublished\":\"2026-01-09T08:51:18+00:00\",\"dateModified\":\"2026-01-15T07:13:02+00:00\",\"description\":\"Alles wat je moet weten over de WordPress Block Bindings API, een krachtige WordPress-API voor ontwikkelaars om elke databron in hun websites te integreren.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#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\":\"De WordPress Block Bindings API: Wat het is en hoe je het kunt gebruiken om dynamische websites te bouwen\"}]},{\"@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":"De WordPress Block Bindings API: Wat het is en hoe je het gebruikt","description":"Alles wat je moet weten over de WordPress Block Bindings API, een krachtige WordPress-API voor ontwikkelaars om elke databron in hun websites te integreren.","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-block-bindings-api\/","og_locale":"nl_NL","og_type":"article","og_title":"De WordPress Block Bindings API: Wat het is en hoe je het kunt gebruiken om dynamische websites te bouwen","og_description":"Alles wat je moet weten over de WordPress Block Bindings API, een krachtige WordPress-API voor ontwikkelaars om elke databron in hun websites te integreren.","og_url":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2026-01-09T08:51:18+00:00","article_modified_time":"2026-01-15T07:13:02+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"Alles wat je moet weten over de WordPress Block Bindings API, een krachtige WordPress-API voor ontwikkelaars om elke databron in hun websites te integreren.","twitter_image":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png","twitter_creator":"@carlodaniele","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Carlo Daniele","Geschatte leestijd":"20 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"De WordPress Block Bindings API: Wat het is en hoe je het kunt gebruiken om dynamische websites te bouwen","datePublished":"2026-01-09T08:51:18+00:00","dateModified":"2026-01-15T07:13:02+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/"},"wordCount":2667,"publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png","inLanguage":"nl-NL"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/","url":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/","name":"De WordPress Block Bindings API: Wat het is en hoe je het gebruikt","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png","datePublished":"2026-01-09T08:51:18+00:00","dateModified":"2026-01-15T07:13:02+00:00","description":"Alles wat je moet weten over de WordPress Block Bindings API, een krachtige WordPress-API voor ontwikkelaars om elke databron in hun websites te integreren.","breadcrumb":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#primaryimage","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/01\/the-wordpress-block-bindings-api-what-it-is-and-how-to-use-it-to-build-dynamic-websites.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-block-bindings-api\/#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":"De WordPress Block Bindings API: Wat het is en hoe je het kunt gebruiken om dynamische websites te bouwen"}]},{"@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\/64330","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=64330"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/64330\/revisions"}],"predecessor-version":[{"id":64386,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/64330\/revisions\/64386"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64330\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64330\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64330\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64330\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64330\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64330\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64330\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64330\/translations\/es"},{"href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64330\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media\/64331"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media?parent=64330"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/tags?post=64330"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/topic?post=64330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}