About this plugin
Not another FAQ block. 4WP FAQ wraps the core Accordion you already use, adds FAQPage JSON-LD, and turns every question on your site into one registry you can reuse, update everywhere, and show as a searchable hub. Your design stays the same.
dev/plugin/4wp-faq
dev/faqs
Why 4WP FAQ
- Built on core. A thin wrapper over the core Accordion. No new design, no lock-in: unwrap any time and the Accordion stays.
- The only FAQ plugin that scans. Questions live on your pages. A scan collects them into one registry. You never type a question twice.
- Edit once, update everywhere. Change a question in the registry and 4WP FAQ writes it onto every page listed in Used in.
- SEO hub for free. List, Categories, Search and Count blocks, pretty category URLs, category SEO titles, canonical and Open Graph. No Pro tier.
- AI without a vendor. Category copy through the standard WordPress AI Client (Connectors). No custom SDK, no API keys in the plugin.
What you get
- FAQPage JSON-LD — structured data for search engines and AI answers. Opt-in, site-wide or per block. Skips its own output when Yoast already prints FAQ schema.
- Convert to FAQ — one click on an Accordion, or Transform to → 4WP FAQ from Details, heading + paragraph pairs or a List.
- FAQ registry — every unique question with Used in sources, categories and a Dashboard. Add FAQ places a new question on every page of a category, or on one page.
- FSE hub — 4WP FAQ List, Categories, Count and core Search with in-place filtering (Interactivity API). Nested categories, drag-and-drop order.
- Polylang — categories follow the page language; the Dashboard shows figures per language.
- 4WP Drive — an H2 FAQ section with H3 questions in a Google Doc becomes a 4WP FAQ block on import.
dev. 4WP is our project brand; this plugin is not affiliated with, endorsed, or sponsored by WordPress.
dev/plugins
How to work with it (short path)
- In the editor, add a core Accordion (or select an existing one).
- 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.
- Put the question in the Accordion Item heading and the answer in the panel.
- Open FAQ → Settings and enable FAQPage JSON-LD if you want structured data on the front end.
- Optional: complete registry setup → Rescan (Dashboard or Settings) → place 4WP FAQ List and 4WP FAQ Categories on a hub page or template.
- 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.
- 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).
- 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.
- Complete registry setup so FAQ categories exist.
- Open Settings → Connectors and finish a connector for text generation.
- Under FAQ → Settings → AI, turn on Allow predefined field markup.
- 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.
- 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. json ) is in the public GitHub repository — not in the distributed ZIP.
From a clone:
- cd into the plugin directory
- npm install
- 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.