4WP FAQ

Description

4WP FAQ wraps WordPress core Accordion blocks so you can keep your design and still get:

  • FAQPage JSON-LD for Google rich results (off by default; turn on when you are ready)
  • An optional FAQ registry (scan of unique questions). Edit one record to push Q/A onto every Used In page. Add FAQ places a new item on category pages or one page. Site content stays the source of truth.
  • Hub pages with List + Categories blocks, pretty category URLs, category SEO titles, collapsible subcategory nav, and drag-and-drop category order (admin + front end)
  • Drag-and-drop FAQ category order on FAQ Categories — same order in admin lists and on the front end (List / Categories hub)
  • Optional AI category copy through the standard WordPress AI Client (Settings Connectors) — description, display title, SEO title, and SEO description. No custom vendor SDK.

A plugin by 4wp.dev. 4WP is our project brand; this plugin is not affiliated with, endorsed, or sponsored by WordPress.

Source: github.com/4wpdev/4wp-faq

How to work with it (short path)

  1. In the editor, add a core Accordion (or select an existing one).
  2. Click Convert to FAQ in the block toolbar (or insert the 4WP FAQ block). You can also select existing Details, Accordion, or heading + paragraph blocks and use Transform to 4WP FAQ.
  3. Put the question in the Accordion Item heading and the answer in the panel.
  4. Open FAQ Settings and enable FAQPage JSON-LD if you want structured data on the front end.
  5. Optional: complete registry setup Rescan (Dashboard or Settings) place 4WP FAQ List and 4WP FAQ Categories on a hub page or template.
  6. Optional: FAQ Add FAQ — question, answer, FAQ categories (every matching FAQ block) and/or one page. No place chosen: the row is registry-only until a scan drops it.
  7. Optional: edit a registry FAQ and Update — the plugin writes that item onto every Used In page (question match uses the previous title if you renamed it).
  8. Optional: configure Settings Connectors, then FAQ Settings AI to allow field markup. On FAQ Categories, edit a term and Generate with AI. Apply writes into the form; Update still saves.

The registry is a helper. Accordion items on pages are the source of truth. A scan rebuilds the CPT from the site. New answers reuse the markup wrapper of a sibling accordion item on that page.

Blocks

  • 4WP FAQ (forwp/faq) — wrap Accordion / Accordion Item for JSON-LD and registry scan
  • 4WP FAQ List (forwp/faq-list) — registry glossary: grouped or flat, include/exclude categories
  • 4WP FAQ Categories (forwp/faq-categories) — category nav that filters the List; nested terms collapse by default
  • 4WP FAQ Count (forwp/faq-count) — live count for All / category / search ([forwp_faq_count])
  • 4WP FAQ Card (forwp/faq-card) — inner card for the List (not in the inserter)

Key features

  • Wrap Accordion / Accordion Item (legacy Details still supported)
  • FAQPage JSON-LD in the document head — site-wide toggle plus per-block override
  • Optional FAQ registry — scan, Used In, edit-to-push, Add FAQ onto category pages or one page
  • FAQ categories — manage in admin, assign per block, or create on scan from the page
  • Admin Dashboard — status metrics, Rescan, hierarchical categories, reused / uncategorized
  • FSE hub blocks — List, Categories, Count, Card
  • Categories nav: nested terms collapse by default; visitors expand them and the browser remembers
  • Preview count per category on the All view + optional pretty category URLs (/hub-page/term-slug/)
  • Category SEO title / description / image fields; filled SEO title is used as-is (no site-name suffix); pretty URLs use a category canonical
  • Drag-and-drop category order on FAQ FAQ Categories — same order in admin lists, Dashboard, and front-end List / Categories blocks
  • Polylang — categories follow the language of the page that owns the FAQ block
  • Setup wizard for registry post type and taxonomy slugs
  • Convert to FAQ toolbar and Transform to 4WP FAQ (Accordion, Details, List, heading + paragraph — one or many); default Accordion template on insert
  • AI Assistant — WordPress AI Client / Connectors; Generate with AI on FAQ category edit (description + titles + meta). Settings AI is always visible; markup stays off until a connector is available and Allow predefined field markup is on

AI Assistant

Generation uses the WordPress AI Client. Configure a text-generation connector under Settings Connectors. FAQ Settings always shows an AI card; Allow predefined field markup stays disabled until a connector is available.

  1. Complete registry setup so FAQ categories exist.
  2. Open Settings Connectors and finish a connector for text generation.
  3. Under FAQ Settings AI, turn on Allow predefined field markup.
  4. Edit a category on FAQ Categories. Generate with AI fills Description, Display title, SEO title, and SEO description from the category name and questions in that term.
  5. Review, Apply (or Apply all), then Update. Nothing is saved until you update the term.

The plugin does not ship API keys and does not call a model until a connector is configured. Which remote service receives the prompt depends on the connector the administrator selected.

Development

JavaScript and CSS are built with @wordpress/scripts. Human-readable source (src/, webpack.config.js, package.json) is in the public GitHub repository — not in the distributed ZIP.

From a clone:

  1. cd into the plugin directory
  2. npm install
  3. npm run build — compiles block, admin, and setup apps into build/

External services

This plugin optionally sends prompts through the WordPress AI Client when an administrator configures a connector under Settings Connectors and runs Generate with AI on a FAQ category.

WordPress AI Client / Connectors (optional)

The plugin sends a prompt (site name, category name, question titles in that category, and current field values) through wp_ai_client_prompt(). The WordPress AI Client routes that prompt to the connector the administrator selected. This plugin does not call model vendors directly; which remote service receives the prompt depends on that connector. No visitor or front-end user data is sent. Nothing is generated until a connector is configured and Allow predefined field markup is on.

Blocks

This plugin provides 5 blocks.

  • 4WP FAQ Count Live count of FAQ questions on this page: all, the current category URL, or the current search.
  • 4WP FAQ Categories FAQ category navigation: vertical or horizontal. Filters 4WP FAQ List via the Interactivity API.
  • 4WP FAQ List Registry FAQ list: grouped by category or a single list, with include/exclude.
  • 4WP FAQ FAQ wrapper for accordion items.
  • 4WP FAQ Card Single FAQ registry card: accordion or heading plus description, optional source links.

Installation

  1. Upload to /wp-content/plugins/4wp-faq/ or install from Plugins Add New.
  2. Activate 4WP FAQ.
  3. Add or convert Accordion blocks, then open FAQ Settings for JSON-LD, registry, and optional AI options.
  4. After registry setup + Rescan, add 4WP FAQ List and 4WP FAQ Categories on a page or template.
  5. Optional: configure Settings Connectors, then enable Allow predefined field markup under FAQ Settings AI.

FAQ

Does this replace the Accordion block?

No. 4WP FAQ is a thin wrapper. Your theme and block styles stay the same. Accordion stays Accordion—4WP FAQ adds schema, optional registry, and hub tools around it.

How do I add a new FAQ question?

  1. Edit a page or post.
  2. Insert Accordion (or 4WP FAQ, which starts with an Accordion).
  3. Click Convert to FAQ if you started from a plain Accordion.
  4. Or select one or more Details / Accordion Item blocks (or heading + paragraph pairs) and use Transform to 4WP FAQ.
  5. One Accordion Item = one question (heading) and one answer (panel).
  6. If you use the registry: open FAQ Dashboard or Settings and run Rescan registry so the question appears under All FAQs.

There is no manual “Add New” registry editor. FAQ Add FAQ is a short how-to only.

Is JSON-LD / FAQ schema enabled by default?

No. Structured data is opt-in so you control when Google sees FAQ markup.

  • Site-wide: FAQ Settings FAQPage JSON-LD
  • Per block: block sidebar JSON-LD on front end (On / Off / inherit)

Schema is printed in the document head on singular pages that contain FAQ blocks. The registry is not required for JSON-LD.

How do I check that FAQ schema is working?

  1. Enable JSON-LD in Settings (or for the specific block).
  2. View the published page.
  3. Use Google Rich Results Test or view page source and search for FAQPage.

If Yoast SEO is active and outputs FAQ schema for the same content, 4WP FAQ skips its own output to avoid duplicate FAQPage graphs.

What is the FAQ registry?

An optional post type that aggregates unique questions found in your content after a scan. Use it to:

  • Browse all questions in one place
  • See where a question is reused (“Used in”)
  • Build a public FAQ hub with List + Categories blocks

In-place FAQ blocks on product or landing pages keep working either way.

How do I build an FAQ hub page?

  1. Complete registry setup and run Rescan.
  2. Create a page (for example /faq/).
  3. Add 4WP FAQ Categories (nav) and 4WP FAQ List (questions).
  4. Optionally add core Search and enable Filter 4WP FAQ List in that block’s sidebar.
  5. Optionally add 4WP FAQ Count.

List and Categories share include/exclude filters so the nav and list stay aligned.

What are pretty category URLs?

When Pretty category URLs is on in Settings and on the Categories block:

  • Category links become /your-hub-page/term-slug/
  • On-page title: category Display title (empty: category name) in core Title (core/post-title), Query Title (core/query-title), or Term Name (core/term-name). The template chooses h1–h6. Heading blocks are not swapped.
  • On-page description: category Description in core Excerpt (core/post-excerpt) or Term Description (core/term-description)
  • Optional category SEO title / SEO description drive the document title and meta
  • Canonical / og:url is the category URL (/hub/term-slug/), not the hub
  • SEO image on the category is used for Open Graph / Twitter; empty uses the hub page image
  • The List does not repeat the category name as an H2 when the page title already shows it
  • JSON-LD on that URL is limited to that category

When off, category clicks filter the list in place and the page URL does not change.

How do category SEO titles work?

On each FAQ category term you can set SEO title and SEO description.

  • If SEO title is filled the browser / document title uses that string exactly (no “ – site name” appended).
  • If it is empty Display title + site name (WordPress default pattern).

See FAQ Settings Documentation for on-page title / description and document title / meta rules.

When should I Rescan?

After you add, edit, or remove FAQ blocks on published content. Rescan is available on:

  • FAQ Dashboard (Status widget)
  • FAQ Settings (Rescan registry)

Scans also schedule automatically when relevant posts are saved.

Why does wordpress.org show only one block?

Older packages registered List / Categories / Count from PHP only. From 2.2.0 each public block declares editorScript (and styles where applicable) in its block.json so the directory can discover them. Update to the latest ZIP if the listing looks incomplete.

How do I filter the FAQ list with Search?

Add a core Search block on the same page as 4WP FAQ List. In the block sidebar: 4WP FAQ Filter 4WP FAQ List. Typing filters cards in place and does not run a site search.

Does the plugin duplicate my FAQ text?

No for the front end of in-place blocks—the Accordion content you write is the source of truth. The registry stores aggregated copies for listing and stats; answers still come from scanned content, not a second public editor workflow.

What happens if I reset setup?

You can choose new registry slugs in the wizard again, but FAQ categories are removed. Existing registry posts remain on the previous post type until you complete setup and run a new scan.

Does it work with Polylang?

Yes for registry categories during scan: terms follow the language of the page that contains the FAQ block. WPML is not integrated yet.

Can editors use the Dashboard?

Yes. FAQ Dashboard is available to users who can edit posts. Rescan and Settings require manage options (administrators).

How does the AI Assistant work?

It uses the standard WordPress AI Client, not a separate 4WP AI plugin. Configure a text-generation connector under Settings Connectors. The AI card is always visible under FAQ Settings; you cannot enable Allow predefined field markup until a connector is ready. On a FAQ category edit screen, Generate with AI proposes Description, Display title, SEO title, and SEO description. Apply writes into the form; Update saves. Without a connector, Generate stays unavailable on category screens.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“4WP FAQ” is open source software. The following people have contributed to this plugin.

Contributors

Translate “4WP FAQ” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.6.1

  • 4WP Drive — register the FAQ wrap for import mapping: H2 FAQ section + H3 Q&A become a forwp/faq accordion. Drive Patterns Integrations Plugins lists this plugin when it is active. See 4WP Drive.

2.6.0

  • Registry edit: Update a FAQ record (title + answer) to write that item onto every Used In page. Renamed questions are found via the previous title.
  • Add FAQ: create a registry post; FAQ categories append the item to every matching forwp/faq block; One page limits that to a single post/page that already has a FAQ block. Neither: registry-only until a scan drops it.
  • New answers copy the sibling accordion-item wrapper (heading + panel markup) and fill in your text; the wrapped HTML is saved back on the registry record.
  • Site content stays the source of truth. Rescan / reinstall rebuilds the registry from pages.

2.5.0

  • AI Assistant: generate FAQ category Description, Display title, SEO title, and SEO description via the standard WordPress AI Client (Settings Connectors).
  • Settings AI card is always visible; Allow predefined field markup stays disabled until Connectors support text generation.
  • Docs: WordPress.org readme documents Connectors, FAQ, and External services.

2.4.0

  • FAQ Categories: collapse nested terms by default (block inspector toggle). Visitors can expand/collapse parents; the choice is remembered in the browser. The branch for the current category stays open.
  • Pretty category URLs swap Display title into core Title / Query Title / Term Name, and Description into core Excerpt / Term Description. Heading level stays with the template.
  • Pretty category URLs: <link rel="canonical"> and og:url point at /hub/term-slug/ (not the hub). SEO image on the category is used for Open Graph / Twitter; empty falls back to the hub page image. List group H2 is omitted when the page title already shows that category.

2.3.0

  • Requires WordPress 6.6+ (Interactivity API for List / Categories hub).
  • Convert selected Details, Accordion / Accordion Item, heading+paragraph pairs, or a List to 4WP FAQ via Transform to and the Convert to FAQ toolbar (one or many items).
  • Category SEO title: when filled, the document title is used as-is (no site-name suffix).
  • Admin Dashboard under the FAQ menu: status metrics, Rescan, hierarchical By category (collapsible, inclusive counts), reused / uncategorized.
  • FAQ Categories: drag-and-drop term order applies in admin lists and on the front end (ensures term_order column when missing).
  • Settings: compact layout plus how H1 / document title / meta description are built for category URLs.
  • Docs: hub blocks for page building and core Search Filter 4WP FAQ List.
  • Add FAQ in admin is a short how-to (registry posts are created by scan, not by hand).
  • List/Card: Question / Answer typography on the Styles tab.

2.2.0

  • Listing: declare editorScript / style in block.json for List, Categories, Count, and Card so wordpress.org discovers hub blocks (not only the FAQ wrapper).
  • Contributors: add anatolikkk (Anatoliy Dovgun) alongside 4wpdev.
  • Add 4WP FAQ Count block and [forwp_faq_count] shortcode.
  • Hub: per-category preview on All view, “View all” links, SEO/pretty category URLs, category SEO title/description, drag-and-drop term order.
  • Card: optional “Used in” source links from registry usage meta.
  • Admin: preview-per-category and SEO URL settings; clearer JSON-LD help for hub pages.

2.1.0

  • Add FSE registry hub blocks: 4WP FAQ List, 4WP FAQ Card, 4WP FAQ Categories.
  • Shared include/exclude filters between List and Categories (Interactivity API).
  • Registry content helpers and front-end FAQ view script.

2.0.3

  • Fix: FAQPage JSON-LD uses <summary> text as Question.name for core Details blocks (no longer duplicates the answer).
  • Fix: FAQPage JSON-LD outputs in <head> for reliable detection by validators and crawlers.
  • Add: @id and url on FAQPage schema.

2.0.2

  • Maintenance release.

2.0.1

  • Fix: incomplete plugin uploads no longer white-screen the site — missing PHP files show an admin error and the plugin stops loading safely.
  • Deploy: ensure includes/class-category-resolver.php and other required files are present when updating from 2.0.0.

2.0.0

  • Registry categories: none, existing, or create new per FAQ block (applied on scan).
  • Categories can be managed in admin or derived from the pages where FAQ blocks are placed.
  • Polylang: language-aware FAQ categories during registry scan.
  • Block editor: default Accordion with one item on insert; Add FAQ item button.
  • WPML support planned for a future release.

1.0.0

  • Initial release: forwp/faq wrapper, setup wizard, registry scan, JSON-LD, admin settings UI.