Plugin info

Total downloads: 2,586
Active installs: 0
Total reviews: 0
Average rating: 0
Support threads opened: 0
Support threads resolved: 0 (0%)
Available in: 1 language(s)
Contributors: 1
Last updated: 1/28/2022 (1433 days ago)
Added to WordPress: 10/8/2021 (4 years old)
Minimum WordPress version: 5.6
Tested up to WordPress version: 5.9.12
Minimum PHP version: 7.4

Maintenance & Compatibility

Maintenance score

Possibly abandoned • Last updated 1433 days ago

20/100

Is Headless Converter abandoned?

Possibly abandoned (last update 1433 days ago).

Compatibility

Requires WordPress: 5.6
Tested up to: 5.9.12
Requires PHP: 7.4

Similar & Alternatives

Explore plugins with similar tags, and compare key metrics like downloads, ratings, updates, support, and WP/PHP compatibility.

WPGraphQL
Rating 4.9/5 (48 reviews)Active installs 30,000
WPGraphQL for ACF
Rating 5.0/5 (1 reviews)Active installs 8,000
Headless Mode
Rating 5.0/5 (6 reviews)Active installs 2,000
Headless eCommerce API for Developers – CoCart
Rating 4.9/5 (21 reviews)Active installs 1,000
Faust.js
Rating 5.0/5 (7 reviews)Active installs 1,000
WPGraphQL IDE
Rating 0.0/5 (0 reviews)Active installs 700

Description

Converts frontend to JSON response when request is done with certain conditions.

Inspiration

After creating a bunch of headless WordPress + Web app stacks, I wanted to find a standard and a all-round solution for fetching per page information for web applications inside WordPress. Built-in rest api works fine in basic cases, but it doesn’t support querying by path. Usually this meant that for each project developers would create a custom rest endpoint which would return expected content using content type and slug parameters.

WordPress has few built-in functions to retrieve content by path, url_to_postid and get_page_by_path, but they don’t seem to work with multilanguage plugins, taxonomy or archive pages, which means that WP doesn’t have a reliable way to fetch content this way through rest api.

This plugin converts frontend to JSON which seems after above solution the best way to do things, with added layer of security through application passwords (WordPress v5.6 feature) and a filter, which let’s developers alter outgoing data.

How to start using the plugin

  • Install and activate this plugin in your environment
  • Create application password for a user with administrator role

After above steps have been made, make a request to a page with added Authorization header. See data fetching examples at the end of this documentation for more help

Modifying the output

Plugin outputs current page’s Post object or null. This can be modified using headless-converter-modify-data-filter. You can either modify passed in post object or do your own logic like in the example below.

/**
 * Modifies Headless Converter plugin's output.
 * 
 * @param WPPost|null $post - Current template's post object 
 */
function modify_headless_converter_output($post) {
  if(is_404()) {
    return "this block renders 404 page content";
  } else if(is_page()) {
    return "this block renders page post types content";
  } else if (is_singular('post')) {
    return "this block renders single post content";
  } else if(is_home()) {
    return "this block renders post archive";
  } else {
    return $post;
  }
}

add_filter('headless-converter-modify-data', 'modify_headless_converter_output');

Data fetching examples

Fetch

const username = "admin"
const password = "1111 1111 1111 1111 1111"
const url = "http://localhost:3000/?page_id=2"
const opts = {
  headers: {
     'Authorization': 'Basic ' + btoa(username + ":" + password) 
  }, 
}
fetch(url, opts).then(r => r.json()).then(console.log)

Axios

const axios = require("axios")

const username = "admin"
const password = "1111 1111 1111 1111 1111"
const url = "http://localhost:3000/?page_id=2"
const opts = {
  auth: {
    username,
    password
  }
}

axios(url, opts).then(r => r.data).then(console.log)

Installation

No installation instructions available

Frequently Asked Questions

Application Password doesn’t show up, even though I use WordPress version 5.6 or newer. What do?

This seems to be a feature that is opt-in on some environments. Following hook enables it.

add_filter( 'wp_is_application_passwords_available' , '__return_true' );

Review feed

No reviews available

Screenshots

No screenshots available

Changelog

1.0.0 (2020-10-08):

  • Initial release

1.0.1 (2020-10-08):

  • Remove unnecessary stuff from the plugin folder

1.0.2 (2020-10-20):

  • Add FAQ about enabling application passwords

1.0.3 (2020-11-15):

  • Update and prune repository dependencies

1.0.4 (2020-11-15):

  • Run repository through a linter

1.0.5 (2020-11-16):

  • Fix documentation

1.0.6 (2021-01-28):

  • update tested up to version to 5.9