WP Engine's Headless WordPress Framework provides a set of tools to make building front-end applications with WordPress as the headless CMS a pleasant experience for both developers and publishers. This framework consists of a WordPress plugin, a set of npm packages, and guides to get you started building headless WordPress sites in Next.js.
🚧 Note: This project is in the early stages of development
Eager to try out the Headless Framework? Here's how you can get started:
- Create a WordPress site if you haven't already. We recommend using Local!
- Download, upload, and activate the
wpe-headless
plugin. (Plugin Download) - Install WP GraphQL on the WordPress site if it's not already installed.
- Create a new Next.js app from our getting-started project:
npx create-next-app -e https://github.com/wpengine/headless-framework/tree/canary --example-path examples/getting-started --use-npm
cp .env.local.sample .env.local
- Populate
WORDPRESS_URL
in.env.local
with the full URL to your WordPress site, including thehttp://
orhttps://
prefix. - Populate
WP_HEADLESS_SECRET
in.env.local
with the secret key found at Settings → Headless in your WordPress admin area. cd my-app && npm run dev
➡️ Learn more about getting started
- Headless post previewing
- OAuth token authentication creation
- Preview and draft link rewrites in WP Admin to redirect to the front-end
- Smart content redirects
- Automatically redirects content from the WP site to the front-end site to minimize site visitors’ confusion and avoid SEO penalties for duplicate content
- Redirects hyperlinks inserted into posts’ content to the front-end site
- Disable WP theme admin pages
- Prevents access to admin pages that have no effect on the headless front-end appearance, such as Appearance → Themes.
- Ability to define custom menus in a GUI
- Additional data exposed through WPGraphQL
- Block stylesheets
- Post previewing integration
- Auth handler that exchanges a code for an access token
- A
HeadlessProvider
component to ease communication with WordPress via Apollo and WPGraphQL. - A TemplateLoader component that optionally allows you to follow the WordPress template hierarchy pattern in Next.js
- Load page templates based on the current URL path and page type
- Utilize functions like
getPropsMiddleware
for adding to/manipulating data depending on the template
- Display WordPress menus with our
Menu
component - React hooks for pulling data from WordPress
- “Sensible defaults” for Next.js props and paths
There are two key parts of the WordPress Headless Framework. To take full advantage, you will need to install the plugin in addition to the npm package.
After downloading the zip linked above, we recommend installing by Manually Uploading via WordPress Admin.
yarn add @wpengine/headless
npm install --save @wpengine/headless
- Getting started with the Headless Framework
- Enabling post previews in Next.js
- Using the WordPress template hieararchy in Next.js
Since we're in the early stages of development, we are not currently accepting outside contributions; although, we are interested in any problems that you encounter while using the framework.
As this repository contains a WordPress plugin as well as npm packages, we have a few recommendations to help streamline your development process.
- npm packages in this repository are MIT licensed
- WordPress plugins in this repository are GPLv2+ licensed