{"id":348042,"date":"2026-08-11T18:24:47","date_gmt":"2026-08-11T18:24:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/headlessnext-connector\/"},"modified":"2026-08-11T21:31:24","modified_gmt":"2026-08-11T21:31:24","slug":"headlessnext-connector","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/headlessnext-connector\/","author":23541272,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.3","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"HeadlessNext Connector","header_author":"Aarudh NextGen AI","header_description":"Adds headless\/API-friendly capabilities to any WordPress theme: point WordPress at a decoupled front end and automatically ping it to revalidate content when posts are saved.","assets_banners_color":"363098","last_updated":"2026-08-11 21:31:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/aarudhnextgen.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"aarudhnextgen","date":"2026-08-11 21:31:24"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3642532,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3642532,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3642532,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3642379,"resolution":"1","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Settings \u2192 HeadlessNext Connector configuration screen."}},"plugin_section":[],"plugin_tags":[141196,275253,211409,275241,186251],"plugin_category":[],"plugin_contributors":[275242],"plugin_business_model":[],"class_list":["post-348042","plugin","type-plugin","status-publish","hentry","plugin_tags-headless","plugin_tags-isr","plugin_tags-nextjs","plugin_tags-revalidate","plugin_tags-vercel","plugin_contributors-aarudhnextgen","plugin_committers-aarudhnextgen"],"banners":{"banner":"https:\/\/ps.w.org\/headlessnext-connector\/assets\/banner-772x250.png?rev=3642532","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/headlessnext-connector\/assets\/icon-128x128.png?rev=3642532","icon_2x":"https:\/\/ps.w.org\/headlessnext-connector\/assets\/icon-256x256.png?rev=3642532","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/headlessnext-connector\/assets\/screenshot-1.png?rev=3642379","caption":"Settings \u2192 HeadlessNext Connector configuration screen."}],"raw_content":"<!--section=description-->\n<p><strong>HeadlessNext Connector<\/strong> seamlessly links your WordPress CMS with modern decoupled frontends like <strong>Next.js<\/strong>, <strong>Vercel<\/strong>, <strong>Nuxt<\/strong>, <strong>SvelteKit<\/strong>, or <strong>Remix<\/strong>.<\/p>\n\n<p>When editors publish, update, or delete posts and pages in WordPress, HeadlessNext Connector sends a fast, asynchronous, non-blocking webhook (<code>POST<\/code> request) to your frontend API route. This triggers Incremental Static Regeneration (ISR), updating your static site's cache instantly without rebuilding the entire website!<\/p>\n\n<h3>Key Features:<\/h3>\n\n<ul>\n<li><strong>On-Demand ISR Revalidation:<\/strong> Trigger instant cache invalidation on Next.js (<code>revalidatePath()<\/code> or <code>revalidateTag()<\/code>) when posts or pages change in WordPress.<\/li>\n<li><strong>Asynchronous &amp; Non-Blocking:<\/strong> Fires requests in the background so WordPress post publishing is never delayed waiting for external server responses.<\/li>\n<li><strong>Shared Secret Security:<\/strong> Send an <code>X-HeadlessNext-Secret<\/code> HTTP header to verify that revalidation requests originate exclusively from your authorized WordPress site.<\/li>\n<li><strong>Universal Compatibility:<\/strong> Works with <strong>any<\/strong> active WordPress theme, Gutenberg block editor, Classic Editor, and custom REST API \/ GraphQL setups.<\/li>\n<li><strong>Zero Overhead:<\/strong> Completely inert when no Frontend URL is configured. Zero external tracking or phone-home requests.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>headlessnext-connector<\/code> directory to <code>\/wp-content\/plugins\/<\/code> or install directly via <strong>Plugins \u2192 Add New<\/strong> in your WordPress dashboard.<\/li>\n<li>Activate <strong>HeadlessNext Connector<\/strong>.<\/li>\n<li>Go to <strong>Settings \u2192 HeadlessNext Connector<\/strong>.<\/li>\n<li>Enter your Frontend Base URL (e.g. <code>https:\/\/my-site.com<\/code>) and Revalidation Path (e.g. <code>\/api\/revalidate<\/code>).<\/li>\n<li>(Optional) Set a shared secret token for request verification.<\/li>\n<li>Check <strong>\"Automatically ping the frontend on post publish or update\"<\/strong> and save changes.<\/li>\n<\/ol>\n\n<h3>Quick Next.js App Router Integration Example<\/h3>\n\n<p>Create <code>app\/api\/revalidate\/route.ts<\/code> in your Next.js project:<\/p>\n\n<pre><code>import { revalidatePath } from 'next\/cache';\nimport { NextResponse } from 'next\/server';\n\nexport async function POST(request: Request) {\n  const secret = request.headers.get('x-headlessnext-secret');\n  if (secret !== process.env.REVALIDATE_SECRET) {\n    return NextResponse.json({ message: 'Invalid secret' }, { status: 401 });\n  }\n\n  const body = await request.json();\n  const slug = body.slug || '\/';\n\n  \/\/ Revalidate the updated page path\n  revalidatePath(\/${slug}`);\n<\/code><\/pre>\n\n<p>revalidatePath('\/'); \/\/ Revalidate homepage list<\/p>\n\n<p>return NextResponse.json({ revalidated: true, now: Date.now() });\n}\n`<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20a%20specific%20wordpress%20theme%3F\"><h3>Does this plugin require a specific WordPress theme?<\/h3><\/dt>\n<dd><p>No! HeadlessNext Connector works standalone with any theme, including Twenty Twenty-Four or custom block\/classic themes.<\/p><\/dd>\n<dt id=\"how%20does%20on-demand%20isr%20work%20with%20next.js%3F\"><h3>How does On-Demand ISR work with Next.js?<\/h3><\/dt>\n<dd><p>Next.js uses Incremental Static Regeneration (ISR) to serve fast static pages. When content changes in WordPress, HeadlessNext Connector sends a webhook payload containing the post ID, slug, and post type to your Next.js API route. Next.js then runs <code>revalidatePath()<\/code> to update that static page in the background.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20in%20the%20webhook%20payload%3F\"><h3>What data is sent in the Webhook payload?<\/h3><\/dt>\n<dd><p>The POST JSON payload includes:\n* <code>post_id<\/code>: The ID of the post\/page\n* <code>post_type<\/code>: 'post', 'page', etc.\n* <code>slug<\/code>: The URI slug of the post\n* <code>permalink<\/code>: Full permalink URL\n* <code>action<\/code>: 'publish', 'update', or 'delete'\n* <code>home_url<\/code>: The WordPress site home URL<\/p><\/dd>\n<dt id=\"how%20do%20i%20secure%20my%20revalidation%20endpoint%3F\"><h3>How do I secure my revalidation endpoint?<\/h3><\/dt>\n<dd><p>Configure a <strong>Revalidation Secret<\/strong> in the settings page. HeadlessNext Connector sends this secret in the <code>X-HeadlessNext-Secret<\/code> request header. Check this header in your Next.js API route before calling <code>revalidatePath()<\/code>.<\/p><\/dd>\n<dt id=\"is%20there%20any%20performance%20impact%20on%20wordpress%3F\"><h3>Is there any performance impact on WordPress?<\/h3><\/dt>\n<dd><p>None. All webhook pings use non-blocking HTTP requests (<code>wp_remote_post<\/code> with <code>blocking =&gt; false<\/code>), ensuring the WordPress admin publishing flow remains fast and responsive.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release: settings page, non-blocking on-demand ISR revalidation webhook, secret header validation.<\/li>\n<\/ul>","raw_excerpt":"Connect WordPress to a Next.js \/ decoupled frontend and trigger automatic On-Demand ISR revalidation whenever content updates.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/348042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=348042"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aarudhnextgen"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=348042"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=348042"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=348042"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=348042"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=348042"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=348042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}