Chapter 6: WordPress REST API
Chapter 6 of 15
Chapter 6: WordPress REST API
6.1 REST API Overview
WordPress REST API provides programmatic access to WordPress data.
API Endpoints:
- /wp-json/wp/v2/posts: Posts endpoint
- /wp-json/wp/v2/pages: Pages endpoint
- /wp-json/wp/v2/users: Users endpoint
- /wp-json/wp/v2/media: Media endpoint
6.2 Creating Custom Endpoints
Create custom REST API endpoints.
// Register custom endpoint
add_action('rest_api_init', 'register_custom_endpoint');
function register_custom_endpoint() {
register_rest_route('myplugin/v1', '/data', array(
'methods' => 'GET',
'callback' => 'get_custom_data',
'permission_callback' => '__return_true',
));
}
function get_custom_data($request) {
return new WP_REST_Response(array('data' => 'value'), 200);
}
6.3 REST API Authentication
Secure REST API endpoints with authentication.
- Application Passwords: User-specific passwords
- OAuth: Third-party authentication
- JWT: JSON Web Tokens
- Cookie Authentication: For logged-in users
6.4 REST API Schema
Define schema for custom endpoints.
register_rest_route('myplugin/v1', '/data', array(
'methods' => 'GET',
'callback' => 'get_custom_data',
'args' => array(
'id' => array(
'type' => 'integer',
'required' => true,
'validate_callback' => function($param) {
return is_numeric($param);
}
),
),
));
6.5 Headless WordPress
Use WordPress as a headless CMS with REST API.
- WordPress backend for content management
- Frontend built with React, Vue, or other frameworks
- REST API connects frontend and backend
- Better performance and flexibility