Day 28: Understanding WordPress REST API: Exploring Internal Functions, Admin Ajax, and Discoverable API

If you’ve ever wondered how your WordPress website communicates with itself or external applications, the answer lies in the WordPress REST API. In this blog post, we’ll unravel the technical aspects of the REST API, focusing on internal functions, the role of Admin Ajax, and the concept of a discoverable API.

WordPress REST API Internal Functions:

Let’s take a look at some essential functions:

1. rest_url()

This function is like the postman of the API world. It helps you build the base URL for your REST API requests.

$api_url = rest_url('/wp/v2/posts');

Here, rest_url() constructs the complete URL for accessing the posts endpoint of the REST API.

2. wp_remote_get()

When you want to fetch data from an external source or even from your own site, wp_remote_get() is your messenger. It makes HTTP GET requests.

$response = wp_remote_get($api_url);
$data = wp_remote_retrieve_body($response);

In this example, wp_remote_get() fetches data from the specified API URL, and wp_remote_retrieve_body() extracts the response body.

Admin Ajax in WordPress:

Admin Ajax facilitates communication between the frontend and backend of your WordPress site without refreshing the whole page. Let’s explore some internal functions related to Admin Ajax.

1. wp_ajax_ Hooks

WordPress provides hooks like wp_ajax_{action} to execute functions on the server side when an Ajax request is made.

add_action('wp_ajax_my_custom_action', 'my_custom_function');

Here, when an Ajax request with the action my_custom_action is made, the function my_custom_function is triggered on the server.

2. wp_ajax_nopriv_ Hooks

Similarly, wp_ajax_nopriv_{action} allows you to handle Ajax requests from non-logged-in users.

add_action('wp_ajax_nopriv_my_custom_action', 'my_custom_function');

Here, my_custom_function is executed for both logged-in and non-logged-in users.

Discoverable API:

A discoverable API is like a well-organized library where you can find the information you need easily. WordPress REST API embraces discoverability, making it intuitive for developers to explore and understand the available endpoints.

1. Endpoint Discovery

The API provides an endpoint, wp-json, where you can discover all available routes.

Visiting this URL in your browser or making a request will show you a structured list of available endpoints.

2. Schema Information

Each endpoint in the WordPress REST API comes with its own schema that describes the structure of the data it provides. This self-documenting feature makes it easy to understand what data to expect.

Here, you can explore the schema information for the posts endpoint.

When to Use Admin Ajax and Discoverable API:

Use Admin Ajax When:

  1. Real-time Updates: If you need to update content on the frontend without reloading the entire page, Admin Ajax is your go-to solution.
  2. User Interaction: For interactive elements like form submissions or dynamic content loading, Admin Ajax provides a seamless user experience.

Use Discoverable API When:

  1. Exploring Endpoints: When you’re developing or integrating with the WordPress REST API, the discoverable API allows you to explore available endpoints effortlessly.
  2. Understanding Data Structure: The schema information provided by the API helps you understand the structure of the data you’re working with.

Advantages and Disadvantages:


  1. Scalability: Both Admin Ajax and the Discoverable API contribute to the scalability of your WordPress site by enabling efficient communication between the frontend and backend.
  2. Developer-Friendly: Discoverable API makes it easy for developers to explore and understand the available endpoints, promoting a smooth development process.


  1. Potential Overhead: Admin Ajax might introduce some server load, especially in scenarios with frequent Ajax requests. Careful implementation is needed to avoid performance issues.
  2. Learning Curve: Understanding how to utilize the Discoverable API might require some initial exploration and experimentation, especially for beginners.

Leave a Reply

Your email address will not be published. Required fields are marked *