BACK TO DIRECTORY

REST API blocks

by Jonny Harris

5.0
(2 ratings)

A simple plugin to add block data in json format into the rest api. Once installed, there will be two new fields added to the rest api, has_blocks and blocks.
For example output.
"has_blocks": true,
"block_data": [
{
"blockName": "core/image",
"attrs": {
"url": "https://www.spacedmonkey.com/wp-content/uploads/2018/12/test-image.jpg",
"alt": "Terminal de aeropuerto",
"caption": "fsfsdfdsfdssfd",
"href": "https://www.spacedmonkey.com/test-image",
"rel": "noreferrer noopener",
"linkClass": "jonny-123",
"linkTarget": "_blank",
"id": 147355,
"width": 582,
"height": 327,
"linkDestination": "attachment"
},
"innerBlocks": [
],
"innerHTML": "\n<figure class=\"wp-block-image is-resized\"><a class=\"jonny-123\" href=\"https://www.spacedmonkey.com/test-image\" target=\"_blank\" rel=\"noreferrer noopener\"><img src=\"https://www.spacedmonkey.com/wp-content/uploads/2018/12/test-image.jpg\" alt=\"Terminal de aeropuerto\" class=\"wp-image-147355\" width=\"582\" height=\"327\"/></a><figcaption>fsfsdfdsfdssfd</figcaption></figure>\n",
"innerContent": [
"\n<figure class=\"wp-block-image is-resized\"><a class=\"jonny-123\" href=\"https://www.spacedmonkey.com/test-image\" target=\"_blank\" rel=\"noreferrer noopener\"><img src=\"https://www.spacedmonkey.com/wp-content/uploads/2018/12/test-image.jpg\" alt=\"Terminal de aeropuerto\" class=\"wp-image-147355\" width=\"582\" height=\"327\"/></a><figcaption>fsfsdfdsfdssfd</figcaption></figure>\n"
],
"rendered": "\n<figure class=\"wp-block-image is-resized\"><a class=\"jonny-123\" href=\"https://www.spacedmonkey.com/test-image\" target=\"_blank\" rel=\"noreferrer noopener\"><img src=\"https://www.spacedmonkey.com/wp-content/uploads/2018/12/test-image.jpg\" alt=\"Terminal de aeropuerto\" class=\"wp-image-147355\" width=\"582\" height=\"327\"/></a><figcaption>fsfsdfdsfdssfd</figcaption></figure>\n"
}
],

Technical Notes

  • Requires PHP 5.6+.
  • Requires WordPress 5.5+.
  • Issues and Pull requests welcome on the GitHub repository: https://github.com/spacedmonkey/wp-rest-blocks

Development

This plugin uses @wordpress/env for local development and testing.

Prerequisites

  • Node.js 20+ and npm
  • Docker Desktop (must be installed and running)

Setup

  1. Clone the repository
  2. Install dependencies:
    bash
    npm install
    composer install

  3. Start the WordPress environment:
    bash
    npm run env:start

    This will start a local WordPress instance at http://localhost:8888 (admin: http://localhost:8888/wp-admin with username admin and password password)

    Note: Docker must be running for this to work. The first time you run this, it will download WordPress and set up the database, which may take a few minutes.

Available Commands

  • npm run env:start – Start the WordPress environment
  • npm run env:stop – Stop the WordPress environment
  • npm run env:reset – Reset the environment (clean database)
  • npm run env:destroy – Destroy the environment completely
  • npm run test:php – Run PHPUnit tests
  • npm run test:php:multisite – Run PHPUnit tests in multisite mode
  • npm run lint:php – Run PHP CodeSniffer
  • npm run lint:php:fix – Fix PHP coding standards issues automatically

Running Tests

After starting the environment with npm run env:start, you can run the tests:

`bash

npm run test:php
`

For multisite tests:

`bash

npm run test:php:multisite
`

Accessing the Site

  • Development site: http://localhost:8888
  • Admin dashboard: http://localhost:8888/wp-admin (admin/password)
  • Test site: http://localhost:8889
  • Test admin: http://localhost:8889/wp-admin (admin/password)

Screenshots

Add fields to the rest api.

Add fields to the rest api.

Plugin Details

Active Installs
200
Total Downloads
7,533
Version
2.0.0
Requires WP
5.9
Requires PHP
7.4
Tested Up To
6.9.7
Added
2021-08-11
Last Updated
2026-01-03 4:16pm GMT

Ratings

5
2
4
0
3
0
2
0
1
0