Wordpress Rest-API Endpunkt einrichten

Mit diesem Script kann ein neuer Rest-API Endpunkt eingerichtet werden, der dann über die Website URL aufrufbar ist. In diesem Beispiel wird ein News Endpunkt erstellt, alles nur fiktiv, aber es zeigt wie man es macht.

<?php
/*
	Eigener Endpoint für News-Posts, damit eine komplett eigene
	JSON Ausgabe erzeugt werden kann
 
	Doku : https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/
 */
 
 /*
 	REST URL :
		/wp-json/mein-blog/v1/news/PAGE_NUMBER
 
  */
add_action( 'rest_api_init', 'register_news_endpoint' );
function register_news_endpoint(){
	$namespace = 'mein-blog/v1';
	$route     = '/news/(?P<current_page>\d+)';
	$args      = [
		'methods'  => 'GET',
		'callback' => 'render_rest_news_endpoint',
	];
 
	register_rest_route( $namespace, $route, $args );
}
 
/**
 *
 *
 *
 */
function render_rest_news_endpoint( $data ) {
	/*
	WP codiert hier alles als JSON selbst nach.
	Damit das JSON nicht doppelt encoded wird
	muss es einmal rückgaing gemacht werden.
	 */
 
	$current_page = $data['current_page'];
 
	$thema_slug = ( isset( $_GET['thema'] ) ) ? $_GET['thema'] : false;
 
	// Daten immer als Array anliefern, da alles was hier raus kommt
	// noch mal json_encoded wird - da ist (array) das sicherste
	return json_decode( get_news_json( $thema_slug, ['paged' => $current_page ] ) );
}

Page Tools