WordPress is een van ’s werelds populairste content management systemen (CMS’en) en helpt kleine en grote bedrijven bij het opzetten en maken van verschillende vormen van websitecontent. Maar WordPress is verder geëvolueerd dan alleen het ondersteunen van traditionele blogcontent – en dat is grotendeels te danken aan de WordPress REST API.
De WordPress REST API verbindt WordPress met andere externe webapplicaties. Het maakt toegankelijkere communicatie mogelijk en helpt je om meeslepende, aantrekkelijke webervaringen te bouwen die naadloos integreren met het CMS platform.
Deze API gebruikt endpoints om WordPress inhoud als JSON objecten op te halen en te manipuleren. Met deze endpoints kun je WordPress content op afstand creëren, lezen, bijwerken en verwijderen (CRUD) zonder in te loggen op het WordPress Admin account, wat flexibiliteit biedt en de functionaliteit van WordPress uitbreidt tot buiten de kernfuncties.
Deze handleiding onderzoekt wat de WordPress REST API is, de voordelen ervan, hoe het de basismogelijkheden van WordPress uitbreidt en hoe je een custom endpoint kunt maken, registreren en openen.
Vereisten
Om deze handleiding te kunnen volgen, heb je nodig:
- Kennis van REST API
- Een WordPress site die al is opgezet (je kunt er eenvoudig een opzetten met het MyKinsta dashboard)
- Kennis van het gebruik van WordPress en PHP
De WordPress REST API begrijpen
De WordPress REST API is een krachtige interface waarmee je programmatisch kunt communiceren met WordPress sites met behulp van standaard HTTP methoden.
De standaard mogelijkheden omvatten het benaderen en manipuleren van verschillende soorten WordPress gegevens, zoals berichten, pagina’s, opmerkingen, gebruikers en taxonomieën, in een gestructureerd JSON format. Je kunt ook op afstand CRUD acties uitvoeren op content.
De echte waarde van de WordPress REST API ligt echter in de uitbreidbaarheid via custom endpoints. Je kunt custom endpoints maken om de API aan te passen aan specifieke behoeften, zoals het integreren van extra functionaliteiten, services van derden of unieke gegevensstructuren. Deze flexibiliteit stelt je in staat om zeer custom en functierijke applicaties te bouwen bovenop WordPress.
Zo plan je je custom API endpoints
Het plannen van de structuur en het doel van je custom endpoints is de sleutel tot efficiënte API ontwikkeling. Custom endpoints die zijn afgestemd op jouw specifieke behoeften vereisen zorgvuldige overweging om optimale functionaliteit te garanderen. Strategische planning vergemakkelijkt schaalbaarheid en aanpasbaarheid, en maakt endpoints klaar voor de toekomst om tegemoet te komen aan veranderende bedrijfsbehoeften.
Het plannen van je custom API endpoints vóór de implementatiefase zorgt voor:
- Duidelijkheid van endpointfuncties – Het plannen van je endpoint verduidelijkt de specifieke functie van het endpoint, de verwachte datatypes en het gebruik.
- Consistentie en ontwikkelingsefficiëntie – Planning zorgt ook voor consistentie in het gebruik van de endpoints, responstypen en opmaak, wat de interactie met de API verbetert. Bovendien maakt het kennen van het doel van de API een juiste implementatie mogelijk, waardoor de ontwikkelingstijd wordt verkort en de kans op fouten afneemt.
- Schaalbaarheid en aanpasbaarheid – Het definiëren van de behoeften van je endpoint helpt om het toekomstbestendig te maken, zodat het tegemoet kan komen aan veranderende bedrijfsbehoeften en -eisen zonder dat een compleet herontwerp nodig is.
- Beveiliging – Een goede planning van endpoints helpt bij het bepalen van de noodzaak voor authenticatie om toegang te krijgen tot gegevens of deze te manipuleren. Voor het verkrijgen van content via de API is soms geen gebruikersauthenticatie nodig. Maar voor content die gevoelige of ongeautoriseerde gegevens bevat, is het essentieel om beveiligingseisen te definiëren en maatregelen zoals autorisatie en toegangscontroles te implementeren om de beveiliging van gegevens te helpen garanderen.
In de praktijkgerichte secties die volgen, wordt uitgelegd hoe je een custom endpoint kunt maken dat beschikbaar is op site-domain/wp-json/custom/v2/testimonials
om getuigenissen van klanten op te halen uit een database van je WordPress site.
Na het verzenden van een verzoek retourneert het endpoint een JSON object met informatie over de getuigenissen op je WordPress site zoals gedefinieerd in je callback functie.
Laten we erin duiken!
Een custom berichttype maken voor je endpoint
Eerst moet je een custom berichttype maken.
- Navigeer naar de Theme File Editor in het Appearance gedeelte van je WordPress Admin dashboard.
- Open het bestand function.php van je thema en voeg de volgende code toe:
function create_custom_testimonial_type() { register_post_type('testimonials', array( 'labels' => array( 'name' => 'Testimonials', 'singular_name' => 'Testimonial', ), 'public' => true, 'has_archive' => true, 'show_in_rest' => true, // This enables REST API support )); } add_action('init', 'create_custom_testimonial_type');
Deze code maakt een custom “testimonials” berichttype en schakelt de WordPress REST API ondersteuning in (
'show_in_rest' => true
). Deadd_action hook
roept decreate_testimonial_type
callback functie aan en start deze tijdens de uitvoering.Je kunt de labels en argumenten aanpassen door ze te verwijderen of toe te voegen.
- Klik op Update file om je wijzigingen op te slaan.
Vernieuw het dashboard om te zien dat de optie Testimonials is toegevoegd aan je WordPress dashboard.
- Maak een nieuwe post met testimonials door te klikken op Testimonials > Add new post. Je kunt het blok Pullquote gebruiken. Afhankelijk van hoe je je testimonial presenteert, kun je ook andere blokken gebruiken.
Hier zijn twee voorbeeldtestimonials die zijn gemaakt met de blokken Pullquote:
Een custom endpoint registreren in WordPress
Het registreren van een custom endpoint maakt het beschikbaar voor consumptie via de REST API. Dit houdt in dat je de register_rest_route
functie gebruikt, deze aanroept op de rest_api_init
hook, en een callback methode op te geven die wordt aangeroepen wanneer de route wordt aangeroepen.
Plak de volgende code in het bestand function.php van je thema:
add_action( 'rest_api_init', 'register_testimonial_rest_route' );
function register_testimonial_rest_route(){
register_rest_route(
'custom/v2',
'/testimonials',
array(
'methods' => 'GET',
'callback' => 'get_testimonials',
)
);
}
Deze register_rest_route()
neemt drie parameters op:
- Route Namespace (
$route_namespace
) – Dit is het eerste deel van het URL segment en moet het patroon vendor/versienummer volgen. De vendor staat voor de slug van de leverancier of het thema. De naamruimte helpt om endpoints te onderscheiden en helpt klanten om contact op te nemen met ondersteuning voor jouw custom endpoint. Deze tutorial gebruikt decustom/v2
naamruimte. - De basis URL (
$route
) – Deze volgt de namespaceen is een URL die gekoppeld is aan een methode. Je kunt meer dan één endpoint registreren voor je route. Voor deze tutorial gebruik je de/testimonials
route, die het endpoint vertelt om testimonials op te halen. - De opties van het endpoint (
$args
) – Hier is dit een array die de HTTP methode bevat die wordt gebruikt bij het aanroepen van de route en de callback-functie die het endpoint zal aanroepen wanneer je een verzoek verstuurt. We zullen deze callback-functie in de volgende sectie bespreken.
Noteer tenslotte het adres van je endpoint. Het formaat van een endpoint is site-address/wp-json/namespace/route
. In dit voorbeeld is het endpoint dus https://www.staging.kidspartysanctuary.co.uk/wp-json/custom/v2/testimonials
.
De callback-funtie voor het endpoint implementeren
Na het maken van het custom berichttype en het registreren van je custom endpoint, is de volgende stap het schrijven van je callback-functie. Deze callback-functie wordt elke keer aangeroepen als het endpoint wordt benaderd.
- Declareer je
get_testimonials
callback-functie met de onderstaande code:function get_testimonials(){ }
- Initialiseer een lege testimonials array om de opgehaalde WordPress testimonial gegevens in op te slaan:
$testimonials = array();
- Stel een array in met de naam
$args
met queryparameters voor eenWP_Query
call.$args = array( 'post_type' => 'testimonials', //specifies you want to query the custom post type 'testimonial', 'nopaging' => true, // no pagination, but retrieve all testimonials at once ),
- Maak een instantie van de klasse
WP_Query
die de array$args
opneemt, een query uitvoert op basis van de opgegeven parameters en de resultaten van de WordPress query opslaat in de variabele$query
.$query = new WP_Query($args)
- Schrijf een voorwaardelijke declaration om te controleren of er getuigenisberichten zijn. Maak dan een
while
loop om de berichten te doorlopen en de testimonials terug te sturen naartitle
encontent
.if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $testimonial_data = array( /*an array that stores the title and content of every post*/ 'title' => get_the_title(), 'content' => get_the_content(), // Add other fields as needed ); $testimonials[] = $testimonial_data; } wp_reset_postdata(); /* restores $post global to the current post to avoid any conflicts in subsequent queries*/ } return rest_ensure_response( $testimonials ); /*ensures response is correctly set as a response object for consistency*/
Hier is de volledige code:
function get_testimonials() { $testimonials = array(); $args = array( 'post_type' => 'testimonials', 'nopaging' => true, ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $testimonial_data = array( 'title' => get_the_title(), 'content' => get_the_content(), // Add other fields as needed ); $testimonials[] = $testimonial_data; } wp_reset_postdata(); } return rest_ensure_response( $testimonials ); }
- Test je endpoint met Postman om te controleren of je toegang hebt tot je gegevens.
Je kunt dit ook testen met een browser. Ga naar het endpoint door de URL
site-domain/wp-json/custom/v2/testimonials
in te voeren in de adresbalk van je browser.
Samenvatting
Deze tutorial heeft uitgelegd hoe je een WordPress API custom endpoint kunt implementeren. Om gebruikers toegang te geven tot en te laten communiceren met je WordPress database gegevens, hoef je alleen maar de route te registreren die een callback-functie implementeert.
Wil je weten hoe je WordPress kunt maximaliseren voor jouw bedrijf? Kinsta biedt tal van geavanceerde opties als onderdeel van onze managed WordPress Hosting service om aan je unieke zakelijke behoeften te voldoen. Een opvallende optie is de Kinsta MU (must-use) plugin, die caching voor je site beheert en implementeert om latency te verminderen en prestaties te verbeteren. Probeer Kinsta vandaag nog!
Wat is jouw mening over het ontwikkelen van custom WordPress API endpoints? Heb je er ooit een ontworpen? We horen graag over je ervaringen. Deel ze in de commensectie hieronder.
Laat een reactie achter