DEV Community

Cover image for Using WordPress as a Data Entry Site to Power a Central API
Muhammad Usman
Muhammad Usman

Posted on

Using WordPress as a Data Entry Site to Power a Central API

WordPress is a fantastic tool for bloggers and website owners, but did you know it can also act as a backend for managing data? Yep, it’s true. You can use WordPress to handle data entry and then expose that data via APIs for things like mobile apps, browser extensions, or even other websites. I’ll walk you through how this works and even show you an example so you can get started right away.

What’s an API, Anyway?

Before we jump into WordPress, let’s talk about APIs. An API (Application Programming Interface) is like a bridge that lets two pieces of software talk to each other. Think of it as a menu at a restaurant: you (the client) place an order, and the kitchen (the server) prepares and delivers your food (the data). Pretty neat, right?
There are two main types of APIs you’ll run into:

  1. REST (Representational State Transfer): A simple way to get data via URLs.
  2. GraphQL: A more advanced option where you can specify exactly what data you want. The great news? WordPress supports both! It has a built-in REST API, and you can add GraphQL functionality using the WPGraphQL plugin.

Why Use WordPress for Data Entry?

Here’s why WordPress is awesome for this:

  • User-Friendly: Even non-techies can easily manage data.
  • Customizable: You can tweak it to handle almost any type of data.
  • Plugins Galore: There’s a plugin for everything.
  • API Ready: WordPress makes it super easy to expose your data via APIs. Imagine you’re building an app to display an organizational chart for a company. WordPress can store data like employee details, teams, and office locations, and make it accessible through an API.

Setting Up Your Data Structure in WordPress

Let’s get our hands dirty. First, we need to structure our data using custom post types and taxonomies.

1. Create Custom Post Types

For this example, we’ll need two custom post types:

  • Employees: To store details like names, positions, and contact info.
  • Offices: To manage office locations. The easiest way to set this up is with the Custom Post Type UI plugin:
  1. Install and activate the plugin.
  2. Go to CPT UI > Add/Edit Post Types.
  3. For the Employees post type:
  • Use a slug like employee.
  • Fill in labels (e.g., “Employee” for singular, “Employees” for plural).
  • Enable REST API support.
  1. Repeat the process for the Office's post type.

2. Create a Custom Taxonomy

Next, let’s add a taxonomy for teams. For example, employees can belong to Marketing, Development, or Sales teams.

  • Go to CPT UI > Add/Edit Taxonomies.
  • Create a taxonomy called “Team” and link it to the Employees post type.

3. Add Custom Fields

For more specific data, install the Advanced Custom Fields (ACF) plugin:

  • Create fields for Employees like Position, Email, Phone Number, and Linked Office.
  • Create fields for Offices like Address and Phone Number.

Optional: Simplify the Frontend

If your WordPress site is only for data entry, you can:

  1. Use a minimalist theme like Blank Canvas.
  2. Disable search engine indexing in Settings > Reading.
  3. Restrict access to logged-in users with this code snippet in your functions.php file:
add_action('template_redirect', function() {
    if (!is_user_logged_in() && !is_admin()) {
        wp_redirect(wp_login_url());
        exit;
    }
});
Enter fullscreen mode Exit fullscreen mode

Making Data Accessible via APIs

Now comes the exciting part: exposing your data via APIs.
1. Using the REST API
WordPress automatically adds custom post types to its REST API. Here’s how to access your data:
List all employees:

https://yourwebsite.com/wp-json/wp/v2/employee
Enter fullscreen mode Exit fullscreen mode

Fetch a specific employee by ID:

https://yourwebsite.com/wp-json/wp/v2/employee/{id}
Enter fullscreen mode Exit fullscreen mode

To include custom fields in the REST API, install the ACF to REST API plugin.
2. Using the GraphQL API
Want more flexibility? Install the WPGraphQL plugin:

  1. Search for WPGraphQL in Plugins > Add New.
  2. Activate it.
  3. Your GraphQL endpoint will be available at:
https://yourwebsite.com/graphql
Enter fullscreen mode Exit fullscreen mode

Here’s a sample query to fetch employee details:

{
  employees {
    nodes {
      title
      customFields {
        position
        email
      }
      team {
        name
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

A Practical Example

Let’s say you’re building a mobile app for your company’s organizational chart. Here’s how it all comes together:

  1. Data Entry: Admins log into WordPress to add employees, assign them to teams, and link them to office locations.
  2. API Access: The app fetches this data via REST or GraphQL.
  3. App Display: The app presents the data in an interactive, user-friendly format. For example, if the app needs to show all employees in the Marketing team, you could send this GraphQL query:
{
  employees(where: {teamName: "Marketing"}) {
    nodes {
      title
      customFields {
        email
        phoneNumber
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Wrapping It Up

Using WordPress as a data-entry site to power a central API is a game-changer. It’s user-friendly, highly customizable, and API-ready out of the box. Whether you’re building a mobile app, browser extension, or another website, WordPress can act as a reliable backend to manage and deliver your data. Give it a try—you’ll be amazed at what you can achieve!

Top comments (0)