📄 Plugin Documentation

WebTend — AI FAQ Creator
with Schema Markup

Generate SEO-optimized FAQs from any page using AI (OpenAI, Gemini, or Claude). Injects FAQ Schema markup for Google rich results, with live search, import/export, and auto-append built in.

● GPL v2 Licensed ● WordPress 6.0+ ● PHP 7.4+ ● block.json Block (apiVersion 3) ● BYOK — Your Own API Key ● Bulk & Quick Generate ● No SaaS Subscription
01 — Introduction

What is WebTend AI FAQ Creator?

WebTend AI FAQ Creator generates structured FAQ sections for any post or page by sending the page's content to the AI provider of your choice and returning a set of ready-to-publish question-and-answer pairs. Every FAQ you create is automatically backed by JSON-LD FAQ Schema markup that Google can display as a rich result — no third-party SEO plugin required.

The plugin is entirely self-hosted in the sense that it stores nothing on WebTend servers. It contacts only the AI provider API you connect with your own key — and only when you press Generate FAQs.

🤖
Three AI Providers
Connect OpenAI, Google Gemini, or Anthropic Claude — your key, your choice, switch any time.
Free
🔍
FAQ Schema Markup
JSON-LD FAQPage schema injected automatically. Steps aside if Rank Math already handles it.
Free
🔎
Live Search
Keyword-highlighting search bar filters FAQs in real time — no page reload, no jQuery.
Free
📦
Import & Export
Back up all FAQ sets as JSON or CSV, and restore them on another site in seconds.
Free
🔌
Gutenberg Block
Native block for the full-site editor. Use the shortcode in any classic theme or page builder too.
Free
✍️
4 Tone Options
Professional, Friendly, Technical, or Simple — set a default globally or override per post.
Free
⚡
Bulk Generate
Generate FAQs for every published page and post in one run — live progress bar, skip or overwrite existing.
Free
🔗
Quick Generate
Paste any text or enter a URL — FAQs are generated and attached to any existing page without opening the editor.
Free
wp-admin → AI FAQ Creator
Dashboard
FAQ Sets
Settings
Import / Export
Dashboard v1.0.0
🤖
AI Providers
OpenAI · Gemini · Claude
🗂️
FAQ Sets
12 sets · 67 FAQs
🔍
Schema Markup
JSON-LD injected
02 — Requirements

System Requirements

The plugin checks its minimum WordPress and PHP versions on activation and shows an admin notice instead of crashing if requirements are not met. An AI provider API key is needed for FAQ generation — the plugin itself is free with no subscription.

ComponentMinimumNotes
WordPress6.0Checked on activation
PHP7.4No PHP 8-only features used — wide hosting compatibility
AI Provider API KeyOne of: OpenAI, Gemini, ClaudeBYOK — bring your own key
HTTPSRecommendedAPI keys are stored in wp_options; HTTPS prevents transit exposure
WooCommerceNot requiredNo WooCommerce dependency in this version
📦
Gutenberg Blocks
WordPress core, no extra plugin
🏗️
Classic & Block Themes
All theme types supported
🔍
Rank Math
Auto-avoids duplicate FAQ schema
🌍
Translation Ready
Full .pot file included
🖥️
Page Builders
Shortcode works everywhere
📱
Mobile Responsive
Accordion & list adapt to all screens
03 — Installation

Installation

Method A — WordPress Plugin Directory (Recommended)

1

Search in WordPress Admin

Go to Plugins → Add New and search for WebTend AI FAQ Creator or webtend-ai-faq-generator.

2

Install & Activate

Click Install Now, then Activate. The AI FAQ Creator menu appears in your WordPress admin sidebar.

3

Add Your API Key

Go to AI FAQ Creator → Settings, choose your AI provider, paste your API key, and click Test to confirm the connection.

Method B — Manual Upload

1

Download & Upload

Download webtend-ai-faq-creator.zip from wordpress.org/plugins. Go to Plugins → Add New → Upload Plugin and install the ZIP.

2

Activate

Click Activate Plugin. The plugin creates the wp_wtaf_faq_sets database table automatically on first activation.

3

Configure Your Provider

Navigate to AI FAQ Creator → Settings → AI Provider & API Keys and enter your key for at least one provider.

💡
Template overrides Copy faq-accordion.php or faq-list.php from the plugin's templates/ folder into your active theme's root directory. Your theme copy takes precedence over the plugin's default and survives plugin updates.
04 — Quick Start

Quick Start

After activation and API key setup, you can generate your first FAQ set in under a minute.

  • Go to AI FAQ Creator → Settings and connect at least one AI provider with your API key
  • Open any post or page in the WordPress editor — you'll see the AI FAQ Creator meta box below the content editor
  • Choose your provider, FAQ count (1–15), and tone, then click Generate FAQs from Page Content
  • Review and edit the generated FAQs, then save the post — FAQs are stored automatically
  • Display your FAQs with the shortcode [wtaf_faq], the Gutenberg block, or enable Auto-append in Settings to show them on every page automatically
05 — Feature

AI Providers

The plugin supports three AI providers. You connect them with your own API key — there is no WebTend account required, and API costs go directly to the provider. Switch providers at any time from Settings; existing FAQ sets are not affected.

OpenAI
Default: gpt-4o-mini
platform.openai.com →
Google Gemini
Default: gemini-1.5-flash
aistudio.google.com →
Anthropic Claude
Default: claude-haiku-4-5
console.anthropic.com →
⚠️
API keys are stored in WordPress options Keys are saved in wp_options using sanitize_text_field(). Keep your WordPress installation and database access secured. Use HTTPS to prevent keys from being exposed in transit.

Testing Your Connection

Each provider tab in Settings has a Test button. Clicking it sends a short sample text to the provider and confirms the key is valid and the model is responding before you use it on real content.

06 — Feature

FAQ Generation

FAQ generation happens from a dedicated meta box on every post and page edit screen. The meta box reads the post's content and sends it to your chosen AI provider along with your configuration.

wp-admin → Posts → Edit Post → AI FAQ Creator meta box
🤖 WebTend AI FAQ Creator 5 FAQs generated
1What services do you offer?
We provide digital marketing, web development, and SEO optimization services tailored to your business.
2How long does a typical project take?
Project timelines vary. Most projects are completed within 2–6 weeks from kickoff.
3Do you offer ongoing support after launch?
Yes — all packages include 30 days of post-launch support and optional maintenance plans.
📋 Use shortcode [wtaf_faq] to display FAQs on this page

Controls

ControlOptionsDescription
AI Provideropenai | gemini | claudeOverride the global default for this generation only
FAQ Count1–15Number of FAQ items to generate
ToneProfessional, Friendly, Technical, SimpleWriting style of the generated answers

After generation

Each FAQ appears as an editable card with a question input and an answer textarea. You can edit, reorder, or delete individual items before saving. Once the post is saved, FAQs are stored in _wtaf_faqs post meta and synced to the wp_wtaf_faq_sets table for the management dashboard.

ℹ️
Rate limiting Generation is throttled to 10 requests per minute per user. This protects your API quota from accidental rapid-fire requests. The limit is adjustable via the wtaf_rate_limit_per_minute filter.
07 — Feature

Gutenberg Block

The AI FAQ Display block (wtaf/faq-display) is registered from block.json using apiVersion 3 — the current WordPress standard. It renders the same PHP output as the shortcode so the editor preview and the live frontend always match exactly.

What the block provides

🔍
Live editor preview
ServerSideRender fetches the actual PHP-rendered FAQ accordion into the editor canvas. What you see in the editor is exactly what visitors see.
🎛️
Inspector Controls
Right sidebar controls for display style, search bar toggle, search placeholder text, and optional section heading — all update the preview in real time.
🔄
Block Transforms
Convert any existing [wtaf_faq] shortcode block to the AI FAQ Display block with one click. Round-trip conversion back to shortcode is also available.
📋
Instructional placeholder
When no FAQs have been generated yet the block shows a clear message guiding the user to the meta box — no blank white space.
Block editor — AI FAQ Display block selected
Search FAQs…
What services do you offer? +
How long does a typical project take? +

Most projects are completed within 2–6 weeks from kickoff to delivery.

Do you offer ongoing support? +
AI FAQ Display
DISPLAY SETTINGS
Style
Accordion ▾
Show search bar
SECTION HEADING
Show title

Adding the block

In the block editor, press / and type AI FAQ, or open the block inserter and search for it under the Text category. The block automatically displays the FAQs for the current post — no configuration required.

Block attributes

AttributeTypeDefaultDescription
stylestringaccordionDisplay style: accordion or list
searchbooleantrueShow the live search bar
searchPlaceholderstring''Placeholder text for the search input
showTitlebooleanfalseShow a section heading above the FAQ list
titlestring''Heading text (used when showTitle is true)
postIdinteger0 (current)Load FAQs from a specific post ID

Block Transforms

The block supports bidirectional transforms with the [wtaf_faq] shortcode. Select an existing shortcode block in the editor and click Transform to → AI FAQ Display. All shortcode attributes (style, search, search_placeholder, title) are mapped automatically. To convert back, select the block and choose Transform to → Shortcode.

💡
No FAQs yet? If the block shows the placeholder message, scroll down to the AI FAQ Creator meta box, generate your FAQs, and save the post. The block preview updates automatically on the next editor load.
08 — Feature

Display Options

FAQs can be displayed in two styles — Accordion (collapsible, default) or List (all expanded). Both styles include the optional live search bar. The style is set globally in Settings and overridable per shortcode.

wp-admin → AI FAQ Creator → Settings → Display Settings
AI Provider Generation Display
FAQ Schema markup
Inject JSON-LD for Google rich results
Auto-append FAQs
Append below page content automatically
Default display style
Accordion or flat list
Accordion ▾
Search bar
Live-filter search above FAQ list
SettingDescriptionDefault
FAQ Schema markupInject JSON-LD FAQPage schema in <head>on
Auto-append FAQsAutomatically append FAQ section after page contentoff
Default display styleaccordion | listaccordion
Search barShow live keyword-filter search inputon
09 — Feature

FAQ Schema Markup

When Schema markup is enabled (the default), the plugin outputs a JSON-LD FAQPage block in the <head> of every singular page that has FAQs. This is the format Google uses to display FAQ rich results in search — collapsible answer snippets below the page's main result.

JSON-LD output on a page with FAQs
// Injected into <head> via wp_head hook
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What services do you offer?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "We provide digital marketing..."
      }
    }
  ]
}
🔍
Rank Math compatibility If Rank Math is installed and configured to manage schema for posts or pages, this plugin's schema output automatically steps aside to avoid duplicate FAQPage markup on the same page.

The schema is filtered through wtaf_schema_enabled, which lets you disable it conditionally — for example, on a specific post, or for users who are logged in.

10 — Feature

Import & Export

The Import / Export page lets you back up every FAQ set to a single file and restore it on any WordPress site running this plugin. It supports JSON (best for re-importing) and CSV (best for editing in Excel or Google Sheets).

Export

Go to AI FAQ Creator → Import / Export and click Download Export File. Choose a format and download begins immediately — no page reload.

Import

Upload a .json or .csv file using the drag-and-drop zone or the Browse button. Choose a duplicate strategy before clicking Run Import:

StrategyBehaviour
ReplaceOverwrites the existing FAQ set for matching posts
SkipLeaves existing FAQ sets unchanged; only imports new ones
💡
CSV format To import hand-crafted FAQs from a spreadsheet, use columns: Post Title, Post URL, Question, Answer. Multiple rows with the same Post URL are grouped into one FAQ set. Import matches posts by URL first, then by slug.
⚠️
Import file size limit Uploaded files are capped at 2 MB. For sites with hundreds of FAQ sets, split the export into smaller batches.
11 — Feature

Auto-Append

When Auto-append is enabled under Settings → Display, the FAQ section is automatically added below the content of any singular post or page that has FAQs — no shortcode or block needed.

Auto-append is smart about avoiding duplication: if the page's content already contains a [wtaf_faq] shortcode or the Gutenberg block, the auto-appended copy is suppressed. It also fires only on the main query loop on singular views, so it never runs in widgets, archive loops, or REST API responses.

ℹ️
When to use Auto-append vs shortcode Use Auto-append if you want FAQs to appear on every eligible page without touching the editor. Use the shortcode or block if you want to control exactly where in the content the FAQ section appears, or use a different style per page.
12 — Feature

Bulk FAQ Generation

Bulk Generation lets you queue all published pages and posts and generate FAQs for each one automatically. The plugin processes them sequentially — one post per AJAX call — to stay within your AI provider's rate limits.

Go to AI FAQ Creator → Bulk Generate to access this feature.

Configuration options

OptionDescription
Post typeAll post types, pages only, posts only, or any registered public custom post type.
FAQ count per postHow many FAQs to generate per page (1–15).
ToneWriting style for all generated answers.
Overwrite existing FAQsWhen off, posts that already have FAQs are skipped. When on, existing FAQs are replaced.

Progress tracking

A live progress bar shows percentage complete. Below it, counters track how many posts have been done, skipped (no content or already has FAQs), and failed (API error). A scrolling log shows the last 10 processed posts by name and status.

ℹ️
Safe to interrupt If you navigate away or cancel, posts already processed keep their FAQs. Clicking Start Another Run resumes from where the queue left off — or starts a fresh run if you change the configuration.
⚠️
API costs Each post triggers one AI API call. For a site with 500 pages, that is 500 API requests. Check your provider's pricing before running bulk generation on a large site. Use a low FAQ count (3–5) and the fastest model to keep costs down.
13 — Feature

Quick Generate

Quick Generate lets you create FAQs from any content source — without opening the post editor. It is the fastest way to get started on a new site or to generate FAQs for a page whose content lives elsewhere.

Go to AI FAQ Creator → Quick Generate to access this feature.

Two source modes

ModeHow it works
✏️ Paste Text Paste any content — a page description, product copy, article — directly into the text area. Up to 8,000 characters are sent to the AI.
🔗 From URL Enter any public webpage URL. The plugin fetches the page server-side, strips all HTML, and uses the resulting text as the AI prompt. Private/local URLs are blocked for security.

Workflow

1

Choose a source

Switch between Paste Text and From URL using the mode buttons. For URL mode, click Fetch Content to retrieve and preview the extracted text.

2

Set generation options

Choose FAQ count (1–15) and tone, then click Generate FAQs. The result appears as editable cards — you can adjust questions and answers before saving.

3

Attach to a page

Select a target page or post from the dropdown and click Save & Attach FAQs. The FAQs are saved to that post's meta and the FAQ Sets table — exactly as if they had been generated from the post editor.

✅
SSRF protection on URL fetch The URL fetch feature blocks requests to private IP ranges (10.x, 172.16–31.x, 192.168.x), loopback addresses (127.x, localhost, ::1), and non-HTTP(S) schemes. Only public web pages can be fetched.
14 — Reference

Shortcode

[wtaf_faq]
Renders the FAQ section for the current post, or for a specific post when post_id is supplied. Works in any theme or page builder that renders shortcodes.
post_idPost ID to load FAQs from. Defaults to the current post.
styleaccordion | list — default from Settings → Display
titleOptional heading text above the FAQ section
classExtra CSS class on the wrapper element
searchyes | no — show or hide the live search bar
search_placeholderPlaceholder text for the search input
💡
Displaying FAQs from another page Use [wtaf_faq post_id="42"] to embed the FAQ set from post ID 42 anywhere on your site — useful for embedding a product FAQ on a landing page.
15 — Reference

All Settings

AI Provider & API Keys

Option keyDescriptionDefault
wtaf_ai_providerActive AI provider slugopenai
wtaf_openai_api_keyOpenAI secret key''
wtaf_openai_modelOpenAI model identifiergpt-4o-mini
wtaf_gemini_api_keyGoogle Gemini API key''
wtaf_gemini_modelGemini model identifiergemini-1.5-flash
wtaf_claude_api_keyAnthropic Claude API key''
wtaf_claude_modelClaude model identifierclaude-haiku-4-5-20251001

Generation Defaults

Option keyDescriptionDefault
wtaf_faq_countDefault number of FAQs per generation (1–15)5
wtaf_faq_toneDefault tone: professional | friendly | technical | simpleprofessional
wtaf_custom_promptAdditional instructions appended to every AI prompt''

Display

Option keyDescriptionDefault
wtaf_schema_enabledInject JSON-LD FAQPage schema: yes | noyes
wtaf_auto_appendAuto-append FAQ section below content: yes | nono
16 — Reference

Hooks & Filters

Filters

FilterParametersDescription
wtaf_meta_box_screens array $screens Add or remove post types that show the FAQ generation meta box. Default: ['page', 'post'].
wtaf_schema_enabled bool $enabled, int $post_id Conditionally disable schema injection per post without touching the global setting.
wtaf_rate_limit_per_minute int $limit Adjust the per-user API call rate limit. Default: 10.
wtaf_ai_prompt string $prompt, int $faq_count, string $tone Modify the full prompt sent to the AI before the API call is made.
wtaf_rate_limit_per_minute int $limit Adjust the per-user API call rate limit for Bulk and Quick Generate. Default: 10 (bulk start: 5, URL fetch: 15).

Usage examples

PHP — add a custom post type to the meta box
add_filter( 'wtaf_meta_box_screens', function( $screens ) {
    $screens[] = 'product'; // WooCommerce products
    return $screens;
} );
PHP — disable schema on a specific post
add_filter( 'wtaf_schema_enabled', function( $enabled, $post_id ) {
    return ( 999 === $post_id ) ? false : $enabled;
}, 10, 2 );
PHP — raise the rate limit for admins
add_filter( 'wtaf_rate_limit_per_minute', function( $limit ) {
    return current_user_can( 'manage_options' ) ? 30 : $limit;
} );
17 — Reference

External Services

This plugin connects to third-party AI provider APIs to generate FAQ content. These calls are made only when you click "Generate FAQs" in the post editor — no data is sent automatically or on page load.

✅
What data is sent The text content of your WordPress page or post is sent to the selected AI provider along with configuration parameters (FAQ count, tone). Your site URL, user data, or personal information are not included in the request.

OpenAI

Used to generate FAQ content via the GPT model you select (e.g. GPT-4o Mini).

DetailValue
API endpointhttps://api.openai.com/v1/chat/completions
Terms of Serviceopenai.com/policies/terms-of-use
Privacy Policyopenai.com/policies/privacy-policy

Google Gemini

Used to generate FAQ content via the Gemini model you select (e.g. Gemini 1.5 Flash).

DetailValue
API endpointhttps://generativelanguage.googleapis.com/
Terms of Servicepolicies.google.com/terms
Privacy Policypolicies.google.com/privacy

Anthropic Claude

Used to generate FAQ content via the Claude model you select (e.g. Claude Haiku).

DetailValue
API endpointhttps://api.anthropic.com/v1/messages
Terms of Serviceanthropic.com/legal/consumer-terms
Privacy Policyanthropic.com/legal/privacy
ℹ️
No data sent to WebTend All requests go directly from your server to the AI provider you choose. WebTend does not receive, log, or store any content from your site.
18 — Reference

Frequently Asked Questions

Do I need to pay for this plugin?
No — the plugin itself is free. You only pay for the AI provider API calls you make. OpenAI, Google, and Anthropic each offer a free tier or low-cost usage. Check each provider's pricing page for current rates.
Which AI provider gives the best results?
All three providers produce good results. OpenAI's GPT-4o Mini is the default and tends to give the most consistently structured FAQ output. Gemini 1.5 Flash is faster and cost-effective for high-volume sites. Claude Haiku produces especially natural-sounding answers. Test all three with the Test button in Settings and choose what works best for your content.
Will generated FAQs appear in Google's rich results?
The plugin injects the correct FAQPage JSON-LD schema that Google requires for FAQ rich results. Google decides whether to display rich results based on its own quality criteria. Having the schema is a prerequisite — the plugin handles that part. You can verify schema output with Google's Rich Results Test at search.google.com/test/rich-results.
Can I override the FAQ templates with my own theme files?
Yes. Copy faq-accordion.php or faq-list.php from the plugin's templates/ folder into the root of your active theme (or child theme). The plugin checks for a theme copy first using locate_template(). Your theme copy always wins and survives plugin updates.
Can I migrate my FAQs to another WordPress site?
Yes. Go to AI FAQ Creator → Import / Export, click Download Export File (JSON format recommended), then upload the file on the target site using the Import section. The importer matches FAQ sets to posts by URL and slug.
Can I add my own custom post types to the FAQ meta box?
Yes. Use the wtaf_meta_box_screens filter. Add your custom post type slug to the array and the meta box will appear on that post type's edit screen.
What happens if I uninstall the plugin?
Uninstalling via the WordPress admin (Plugins → Delete) runs the uninstall routine, which removes all plugin options, all _wtaf_faqs post meta, and drops the wp_wtaf_faq_sets table. On Multisite it cleans up every sub-site. Deactivating alone does not remove any data.
How does Bulk Generate handle posts that already have FAQs?
By default, posts with existing FAQs are skipped — the "Overwrite existing FAQs" toggle is off. Enable it to regenerate FAQs for every post in the queue. Posts are still processed one at a time regardless of this setting.
Can Quick Generate fetch any URL?
Quick Generate can fetch any publicly accessible HTTP or HTTPS URL. It blocks private IP ranges (10.x, 172.16–31.x, 192.168.x), loopback addresses (localhost, 127.x, ::1), and non-HTTP(S) schemes for security. Password-protected pages and pages that require login cannot be fetched — use the Paste Text mode for those.
Does the Gutenberg block require a build step or npm?
No. The block's editor script (editor.js) uses WordPress core globals (wp.blocks, wp.blockEditor, wp.components, wp.serverSideRender) that are already loaded by the block editor. No npm install, no webpack, no build step is required by the site owner or developer.
How do I convert my existing shortcodes to the block?
In the block editor, select a block containing [wtaf_faq] (either a Shortcode block or a Classic block), then click the Transform to → button in the block toolbar and choose AI FAQ Display. All attributes are mapped automatically. You can convert back to a shortcode the same way.
19 — Reference

Changelog

1.0.1 September 2026
New Features
Gutenberg block migrated to block.json (apiVersion 3) — modern WP block standard
Inspector Controls in the block editor sidebar — style, search, title, all live-updating
ServerSideRender live preview — exact PHP output shown inside the editor canvas
Block Transforms FROM [wtaf_faq] shortcode (one-click upgrade)
Block Transforms TO core/shortcode (round-trip for classic themes)
Instructional placeholder shown when no FAQs exist yet
Bulk FAQ Generation — queue all posts with live progress bar, skip or overwrite
Quick Generate — FAQs from pasted text or any public URL, attach to any page
Concurrency lock on bulk generation — prevents duplicate processing
JSON decode depth limit (3) and array size cap (50) on Quick Generate attach
SSRF protection on URL fetch — blocks private and loopback IP ranges
Bulk overwrite filter uses single batch postmeta query (was N+1)
no_found_rows set to true on bulk post query — removes SQL_CALC_FOUND_ROWS
Response size limit (1 MB) on URL fetch — prevents memory exhaustion
Non-backtracking regex in HTML extractor — prevents ReDoS on malicious pages
Explicit return after wp_send_json_success() on empty bulk queue
Network retry cap (3 attempts, exponential back-off) replaces infinite loop
escAttr() added for HTML attribute context in JS — prevents value="" breakout
1.0.0 September 2026
Initial Release
OpenAI, Google Gemini, and Anthropic Claude support (BYOK)
FAQ generation meta box on post and page edit screens
Live FAQ search with keyword highlighting and ARIA announcements
FAQ Schema JSON-LD injection with JSON_HEX_TAG security
Shortcode [wtaf_faq] with full attribute support
Gutenberg block with search attribute support
Accordion and List display styles
FAQ Sets management dashboard with per-set shortcode
4 tone options and custom prompt instructions
Auto-append FAQs to page content via the_content filter
Export all FAQ sets as JSON or CSV
Import FAQ sets from JSON or CSV with Replace / Skip strategies
Theme template overrides via locate_template()
wtaf_schema_enabled and wtaf_meta_box_screens filters
Multisite-aware uninstall routine
Per-user rate limiting on AI generation (10 req/min)
Post ownership check — users can only generate FAQs for posts they can edit
Import file size cap (2 MB) and MIME type verification
Translation ready — full .pot file included