WordPress REST API uitgelegd: wat het is en hoe je het gebruikt
Laatst bijgewerkt: 31 December 2025
WordPress REST API Uitgelegd: Wat Het Is en Hoe Je Het Gebruikt [2025]
De WordPress REST API opent een wereld van mogelijkheden: headless websites, mobiele apps, en integraties met andere systemen. In deze handleiding leggen we uit wat de REST API is, hoe het werkt, en hoe je het praktisch kunt gebruiken.
Wat is de REST API?
REST Uitgelegd
REST staat voor "Representational State Transfer". Het is een architectuurstijl voor het bouwen van webservices. In simpele termen: een manier voor verschillende systemen om met elkaar te communiceren via standaard HTTP verzoeken.
WordPress REST API
De WordPress REST API stelt je in staat om:
- WordPress data op te halen (posts, pagina's, gebruikers)
- Content te maken, bewerken en verwijderen
- WordPress te gebruiken als backend voor andere applicaties
- Integraties te bouwen met externe diensten
Praktische Voorbeelden
- WordPress als content management systeem
- React/Vue/Next.js als frontend
- API levert de content
Mobiele Apps
- iOS of Android app
- Haalt content op via API
- Native ervaring, WordPress backend
Integraties
- Synchroniseer met CRM systemen
- Automatiseer content publicatie
- Koppel met marketing tools
De Basis: Endpoints en Routes
Wat is een Endpoint?
Een endpoint is een specifieke URL waar je data kunt opvragen of versturen.
Standaard Endpoints
WordPress biedt standaard endpoints voor:
Posts
GET /wp-json/wp/v2/posts
GET /wp-json/wp/v2/posts/{id}
POST /wp-json/wp/v2/posts
PUT /wp-json/wp/v2/posts/{id}
DELETE /wp-json/wp/v2/posts/{id}
Pagina's
GET /wp-json/wp/v2/pages
Categorieën
GET /wp-json/wp/v2/categories
Media
GET /wp-json/wp/v2/media
Gebruikers
GET /wp-json/wp/v2/users
Endpoint Ontdekken
Bezoek je site's root endpoint om alle beschikbare routes te zien:
https://jouwsite.nl/wp-json/
Praktisch: Data Ophalen
Posts Ophalen
In je browser of met een tool als Postman:
GET https://jouwsite.nl/wp-json/wp/v2/posts
Respons:
[
{
"id": 1,
"title": {
"rendered": "Hallo Wereld"
},
"content": {
"rendered": "<p>Welkom bij WordPress...</p>"
},
"date": "2025-01-15T10:00:00",
"author": 1,
"categories": [1],
...
}
]
Filteren en Pagineren
Per pagina:
GET /wp-json/wp/v2/posts?per_page=5
Pagina selecteren:
GET /wp-json/wp/v2/posts?page=2
Op categorie:
GET /wp-json/wp/v2/posts?categories=3
Zoeken:
GET /wp-json/wp/v2/posts?search=wordpress
Sorteren:
GET /wp-json/wp/v2/posts?orderby=date&order=desc
Gecombineerd:
GET /wp-json/wp/v2/posts?categories=3&per_page=10&orderby=title&order=asc
Specifieke Velden Opvragen
Beperk de respons tot specifieke velden:
GET /wp-json/wp/v2/posts?_fields=id,title,link
Authenticatie
Sommige acties vereisen authenticatie (bijv. posts aanmaken).
Application Passwords (Aanbevolen)
Sinds WordPress 5.6 ingebouwd:
- Ga naar Gebruikers → Je Profiel
- Scroll naar "Application Passwords"
- Voer een naam in en klik "Add New"
- Kopieer het wachtwoord (wordt maar één keer getoond)
Gebruik:
curl -X POST \
-u username:application_password \
-H "Content-Type: application/json" \
-d '{"title":"Nieuwe Post","content":"Inhoud hier","status":"publish"}' \
https://jouwsite.nl/wp-json/wp/v2/posts
JWT Authentication
Voor meer geavanceerde scenarios:
- Installeer JWT Authentication plugin
- Configureer secret key in wp-config.php
- Vraag token aan met credentials
- Gebruik token in Authorization header
Content Aanmaken via API
Nieuwe Post Maken
fetch('https://jouwsite.nl/wp-json/wp/v2/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa('username:app_password')
},
body: JSON.stringify({
title: 'Mijn Nieuwe Post',
content: 'Dit is de inhoud van mijn post.',
status: 'publish'
})
})
.then(response => response.json())
.then(data => console.log(data));
Post Updaten
fetch('https://jouwsite.nl/wp-json/wp/v2/posts/123', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa('username:app_password')
},
body: JSON.stringify({
title: 'Bijgewerkte Titel'
})
});
Post Verwijderen
fetch('https://jouwsite.nl/wp-json/wp/v2/posts/123', {
method: 'DELETE',
headers: {
'Authorization': 'Basic ' + btoa('username:app_password')
}
});
Custom Endpoints Maken
Je kunt eigen endpoints registreren voor custom functionaliteit.
Eenvoudig Custom Endpoint
In functions.php of een plugin:
[add_action](/kennisbank/wordpress-hooks-uitleg)('rest_api_init', function() {
register_rest_route('mijn-api/v1', '/welkom', array(
'methods' => 'GET',
'callback' => 'mijn_api_welkom',
'permission_callback' => '__return_true'
));
});
function mijn_api_welkom() {
return array(
'bericht' => 'Welkom bij mijn API!',
'tijd' => current_time('mysql')
);
}
Toegankelijk via:
GET /wp-json/mijn-api/v1/welkom
Endpoint met Parameters
add_action('rest_api_init', function() {
register_rest_route('mijn-api/v1', '/groet/(?P<naam>[a-zA-Z]+)', array(
'methods' => 'GET',
'callback' => 'mijn_api_groet',
'permission_callback' => '__return_true',
'args' => array(
'naam' => array(
'required' => true,
'validate_callback' => function($param) {
return is_string($param);
}
)
)
));
});
function mijn_api_groet($request) {
$naam = $request['naam'];
return array(
'groet' => 'Hallo ' . sanitize_text_field($naam) . '!'
);
}
Headless WordPress
Wat is Headless?
"Headless" betekent dat je WordPress alleen als backend/CMS gebruikt, terwijl een aparte applicatie (React, Vue, Next.js) de frontend verzorgt.
Voordelen
- Moderne frontend technologie
- Betere performance
- Flexibiliteit in design
- Herbruikbare content (web + app)
Nadelen
- Complexere setup
- Geen thema preview
- SEO vereist extra aandacht
- Twee systemen onderhouden
Populaire Combinaties
Next.js + WordPress
- Server-side rendering
- Goede SEO
- Vercel hosting
Gatsby + WordPress
- Static site generation
- Zeer snel
- JAMstack architectuur
Vue/Nuxt + WordPress
- Vue.js ecosystem
- Flexibel
- Progressive enhancement
Beveiliging
Endpoints Beperken
Niet alle endpoints hoeven publiek te zijn:
// Verberg gebruikerslijst voor niet-ingelogden
add_filter('rest_endpoints', function($endpoints) {
if (!is_user_logged_in()) {
unset($endpoints['/wp/v2/users']);
unset($endpoints['/wp/v2/users/(?P<id>[\d]+)']);
}
return $endpoints;
});
Rate Limiting
Voorkom misbruik met rate limiting (via plugin of server configuratie).
CORS Configureren
Bij headless setup, configureer Cross-Origin Resource Sharing:
add_action('rest_api_init', function() {
remove_filter('rest_pre_serve_request', 'rest_send_cors_headers');
add_filter('rest_pre_serve_request', function($value) {
header('Access-Control-Allow-Origin: https://mijn-frontend.nl');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
header('Access-Control-Allow-Headers: Authorization, Content-Type');
return $value;
});
});
Debugging
Browser Tools
Gebruik browser developer tools (Network tab) om API calls te inspecteren.
Postman
Ideaal voor API testing:
- Maak request collections
- Bewaar authenticatie
- Test responses
WP REST API Console Plugin
Test endpoints direct vanuit WordPress admin.
Meer informatie: WordPress.org documentatie
Veelgestelde vragen
Hoe lang duurt het om dit te implementeren?
De implementatietijd varieert per situatie. Voor eenvoudige configuraties is dit binnen een uur geregeld, complexere setups kunnen enkele uren tot een dag duren.
Wat zijn de kosten?
De kosten zijn afhankelijk van je hosting provider en pakket. Veel basisfuncties zijn gratis inbegrepen, voor geavanceerde functies kunnen extra kosten gelden.
Heb ik technische kennis nodig?
Voor de basis heb je weinig technische kennis nodig. De meeste hosting providers bieden uitgebreide documentatie en support om je te helpen.
Was dit artikel nuttig?
Vergelijk direct hosting pakketten om de beste keuze voor jouw situatie te maken.
Gerelateerde artikelen
Wat is webhosting? Uitleg voor beginners
Ontdek wat webhosting is en hoe het werkt. Complete uitleg over servers, domeinen en verschillende hosting types voor beginners.
Wat is VPS hosting?
VPS hosting uitgelegd: wat is een virtual private server, voor wie is het geschikt en wat zijn de voordelen ten opzichte van shared hosting?
Wat is een SSL-certificaat?
Alles over SSL-certificaten: wat is SSL, waarom heb je het nodig en hoe herken je een beveiligde website? Essentieel voor elke website.
Wat is uptime bij webhosting?
Wat betekent uptime bij webhosting? Leer over uptime percentages, SLA garanties en waarom 99.9% uptime belangrijk is voor je website.
Hoeveel opslag heb ik nodig voor mijn website?
Ontdek hoeveel schijfruimte je echt nodig hebt voor je website. Praktische gids met voorbeelden per websitetype.