Ga naar inhoud

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

Headless WordPress

  • 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:

  1. Ga naar Gebruikers → Je Profiel
  2. Scroll naar "Application Passwords"
  3. Voer een naam in en klik "Add New"
  4. 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:

  1. Installeer JWT Authentication plugin
  2. Configureer secret key in wp-config.php
  3. Vraag token aan met credentials
  4. 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.

Klaar om te kiezen?

Vergelijk hosting pakketten