Title: Dotes FAQ Generator
Author: Luiz Jr. Fernandes
Published: <strong>November 6, 2026</strong>
Last modified: November 6, 2026

---

Search plugins

![](https://ps.w.org/dotes-faq-generator/assets/banner-772x250.png?rev=3788791)

![](https://ps.w.org/dotes-faq-generator/assets/icon-256x256.png?rev=3788791)

# Dotes FAQ Generator

 By [Luiz Jr. Fernandes](https://profiles.wordpress.org/dotes/)

[Download](https://downloads.wordpress.org/plugin/dotes-faq-generator.1.3.3.zip)

 * [Details](https://wordpress.org/plugins/dotes-faq-generator/#description)
 * [Reviews](https://wordpress.org/plugins/dotes-faq-generator/#reviews)
 *  [Installation](https://wordpress.org/plugins/dotes-faq-generator/#installation)
 * [Development](https://wordpress.org/plugins/dotes-faq-generator/#developers)

 [Support](https://wordpress.org/support/plugin/dotes-faq-generator/)

## Description

Dotes FAQ Generator lets you write frequently asked questions in groups and show
them anywhere on your site.

 * **FAQ groups and categories** with search and status in the admin list.
 * **Native block** “FAQ (Dotes)” and the `[dotes_faq]` shortcode.
 * **Accordion** or **open list** display, chosen globally, per FAQ or per block/
   shortcode.
 * **FAQPage structured data** (JSON-LD) with every question of each group, including
   the FAQs selected in the post. It can be switched off in the settings.
 * **“Was this answer helpful?” votes** with duplicate-vote protection.
 * **FAQ of the post**: pick FAQs in a metabox (posts and pages) and insert them
   before or after the content.
 * **Search** inside a FAQ list, global colours.
 * **Backup and import** of FAQs, categories and settings.
 * Create FAQs from the post editor (toolbar button and modal) and insert their 
   shortcode.

#### Shortcode

 * `[dotes_faq id="12"]` shows FAQ group 12.
 * `[dotes_faq category="support" limit="5"]` lists the FAQs of a category (ID or
   slug).
 * `[dotes_faq toggle="list"]` forces the open-list mode (`accordion` is the default).
 * `title="..."` (or `title="false"` to hide the title), `search="false"` and `featured
   ="true"` are also available for lists.

#### For developers

The plugin exposes actions and filters for extensions, for example `dotes_faq_display_modes`,`
dotes_faq_render_output`, `dotes_faq_admin_tabs`, `dotes_faq_settings_rows`, `dotes_faq_editor_rows`,`
dotes_faq_style_fields`, `dotes_faq_item_css`, `dotes_faq_schema_data`, `dotes_faq_schema_faq_ids`,`
dotes_faq_output_schema`, `dotes_faq_metabox_post_types`, `dotes_faq_group_saved`,`
dotes_faq_vote_recorded`, `dotes_faq_client_ip`, `dotes_faq_store_ip` and `dotes_faq_public_nonce_actions`.
Use `dotes_faq_generator()` to get the plugin instance.

#### Sites behind a proxy or CDN

Duplicate votes are detected by the visitor IP address, read from `REMOTE_ADDR`.
Behind Cloudflare, a load balancer or another reverse proxy every visitor may arrive
with the proxy address, so only the first vote would be accepted. Return the real
visitor IP with the `dotes_faq_client_ip` filter, reading a header that only your
proxy sets (for example `CF-Connecting-IP` on Cloudflare), or adjust the stored 
value with `dotes_faq_store_ip` (it receives the address already anonymised, or 
an empty string when IP collection is off).

    ```
    add_filter( 'dotes_faq_client_ip', function ( $ip ) { return isset( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ) : $ip; } );
    ```

#### Page cache

The vote buttons work on cached pages: when the security token printed in a cached
page has expired, the script asks the site for a fresh one (`dotes_faq_nonce` AJAX
action) and sends the vote again, once.

### Privacy

When a visitor votes on a FAQ (“Was this answer helpful?”), the plugin stores the
vote in your own database: FAQ ID, vote, date, user ID (logged-in users) and IP 
address, to block duplicate votes.

 * The visitor IP address is **anonymised** before it is stored (last IPv4 octet/
   last 80 bits of IPv6 set to zero). You can disable IP storage in **FAQ Generator
   > Geral**.
 * The plugin adds a suggested text to **Settings > Privacy** and registers a personal
   data exporter and eraser for the votes of registered users.
 * Backup files are kept in a protected folder and are only downloadable by administrators;
   they are deleted after download, and files older than 24 hours are removed whenever
   a new export is created.
 * The plugin does not track views and does not contact any external service. No
   data is sent to Dotes or any third party.

### External services

This plugin does not connect to any external service. Every request it makes goes
to your own site (`admin-ajax.php`), and Font Awesome and DataTables are bundled
with the plugin instead of loaded from a CDN.

### Third-party libraries

 * Font Awesome Free 6.7.2 — icons CC BY 4.0, fonts SIL OFL 1.1, code MIT (assets/
   vendor/fontawesome/LICENSE.txt).
 * DataTables 3.1.5 and its Bootstrap 4 integration — MIT (assets/vendor/datatables/
   LICENSE.txt).

## Screenshots

[⌊FAQ list in the admin.⌉⌊FAQ list in the admin.⌉[

FAQ list in the admin.

[⌊FAQ editor with the display mode.⌉⌊FAQ editor with the display mode.⌉[

FAQ editor with the display mode.

[⌊Accordion on the front end.⌉⌊Accordion on the front end.⌉[

Accordion on the front end.

## Blocks

This plugin provides 1 block.

 *   FAQ (Dotes) Displays a FAQ group or a list of FAQs from a category.

## Installation

 1. Upload the `dotes-faq-generator` folder to `/wp-content/plugins/` or install it
    from the Plugins screen.
 2. Activate the plugin.
 3. Go to **FAQ Generator** in the admin menu, create a category and a FAQ.
 4. Add the “FAQ (Dotes)” block to a page or use the `[dotes_faq id="..."]` shortcode.

## FAQ

### Does it add FAQ structured data?

Yes. When “Dados estruturados” is enabled (the default), a FAQPage JSON-LD block
with the questions shown on the page is printed in the page head; with Dotes Auto
Schema active it goes into its `@graph`. Since 2023 Google shows the FAQ rich result
only for government and health sites, but the markup still describes the questions
and answers to search engines and AI assistants. If another plugin already outputs
FAQPage for the same page, return false from the `dotes_faq_output_schema` filter.

### What happens to my data when I delete the plugin?

Deactivating keeps everything. Deleting the plugin from the Plugins screen removes
its FAQs, categories, votes, settings, post meta and stored export files: export
a backup first if you want to keep the FAQs.

### Which icons does it use?

On the site, the question icons are drawn with CSS: nothing is loaded from Font 
Awesome or any external service. Font Awesome Free is bundled for the plugin admin
screens and the post editor modal.

### Is there a Pro version?

Yes, Dotes FAQ Generator Pro is a separate add-on: display rules (show a FAQ on 
many pages automatically), FAQs per category and tag, analytics, per-FAQ styles 
and the blocks and tabs modes. This plugin is complete without it; the “Pro” tab
of the settings only describes the add-on.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

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

Contributors

 *   [ Luiz Jr. Fernandes ](https://profiles.wordpress.org/dotes/)

[Translate “Dotes FAQ Generator” into your language.](https://translate.wordpress.org/projects/wp-plugins/dotes-faq-generator)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/dotes-faq-generator/),
check out the [SVN repository](https://plugins.svn.wordpress.org/dotes-faq-generator/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/dotes-faq-generator/)
by [RSS](https://plugins.trac.wordpress.org/log/dotes-faq-generator/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.3.3

 * Fixed: the admin notice shown when a database table cannot be created now includes
   the database error (it was cleared by the table check).

#### 1.3.2

 * Changed: the “Custom CSS” setting was removed. CSS saved there is moved to the
   theme’s Additional CSS (Appearance > Customize > Additional CSS) during the update.
 * Per-FAQ CSS and the FAQPage JSON-LD are added with the WordPress script and style
   functions.
 * Hooks dotes_faq_group_saved and dotes_faq_item_saved no longer receive request
   data; dotes_faq_style_fields receives only the sanitized “style_*” fields. Requires
   Dotes FAQ Generator Pro 1.1.5 or later.
 * Database: date columns no longer use CURRENT_TIMESTAMP defaults (MySQL 5.5 support);
   if the tables cannot be created, the plugin shows an admin notice and tries again
   later.
 * Translations come from translate.wordpress.org; the bundled language files were
   removed.
 * Updated DataTables to 3.1.5 and Font Awesome Free to 6.7.2.

#### 1.3.1

 * New: standardized “Pro support” sub-tab, last in the Support tab. Pro subscribers
   send their request to the Dotes team from there (the form comes from the Pro 
   add-on and checks the license); without Pro it shows what Pro support includes.
   The free plugin sends nothing by itself. The forum and FAQ links of the old “
   Help” sub-tab moved into it.

#### 1.3.0

 * New settings screen: Dotes header, tabs with a fade, sticky save bar, settings
   grouped in sections and a “Pro” tab describing the add-on.
 * FAQ list: “Avaliações” column with the helpful / not helpful votes of each FAQ;
   the unused search and category filter above the table were removed.
 * Fixed: importing a backup always failed (“only JSON files”); imported rows are
   now sanitized.
 * Fixed: on a new install the FAQPage data and the vote buttons stayed off while
   the settings showed them on; saving with no data no longer turns every option
   on.
 * Fixed: with two FAQs on a page each vote was sent twice, and in list mode votes
   and search did not work. The vote state of all questions is now checked in one
   request.
 * Fixed: the “Criar FAQ” modal of the post editor did not close; the status button
   of the FAQ list changed the questions instead of the FAQ; “Destaque”, “Busca”,“
   Abrir a primeira pergunta” and the secondary colour had no effect; the categories
   tab could load empty; saving a category could create it twice.
 * Question icons are drawn with CSS (no Font Awesome needed on the site); the primary
   colour marks the open question and the keyboard focus.
 * The admin styles no longer change WordPress screens outside the plugin (post 
   editor, terms, block toolbar).
 * The automatic title (first question) is no longer shown on the site; the post
   FAQs are inserted only in the main content.
 * The FAQ tools of the post editor are shown only to users who can create FAQs (
   filter `dotes_faq_capability`).
 * Removed: the “Ativar plugin” option (use the Plugins screen), the “performance
   indexes” panel (indexes are created on install) and unused AJAX actions.
 * Every admin text, including the scripts, is translatable.

#### 1.2.1

 * Editing a FAQ group from the post editor updates its questions in place: question
   IDs, votes and analytics are kept. A single FAQ turned into a group keeps its
   ID as the first question.
 * Fixed: adding a question after removing another one could reuse the same field
   index and drop a question.
 * With DOTES Auto Schema active, the FAQPage structured data goes into its single`@
   graph` instead of a separate script (no duplicate FAQPage). New filter `dotes_faq_use_schema_graph`.

#### 1.2.0

 * Display rules, analytics, per-FAQ styles, term FAQs and the post FAQ manager 
   moved to the separate Pro add-on; existing data is kept for it.
 * The FAQ editor now creates one FAQ group with every question and edits groups
   in place (questions removed in the editor are deleted).
 * The plugin no longer records views or other analytics events, and no longer loads
   Google Fonts.
 * Single-question shortcodes load the stylesheet and script.
 * Hooks for the settings screen, the FAQ editors, the FAQ list columns and the 
   backup.

#### 1.1.0

 * Native “FAQ (Dotes)” block and open-list display mode.
 * FAQPage schema now includes every question of each group, and FAQs selected in
   posts and terms.
 * Privacy: anonymised IP addresses, privacy policy text, personal data exporter
   and eraser, protected export files.
 * Security hardening (nonces, capabilities, prepared queries, output escaping).
 * Settings that could not be switched off are fixed; unused settings removed.
 * Import keeps the relations between categories, groups, questions and display 
   rules.
 * Styles and scripts are loaded from files once per page; Font Awesome and DataTables
   are bundled.
 * Google Fonts are optional.
 * Hooks for extensions.

#### 1.0.0

 * First version.

## Meta

 *  Version **1.3.3**
 *  Last updated **10 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.3 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [Accordion](https://wordpress.org/plugins/tags/accordion/)[block](https://wordpress.org/plugins/tags/block/)
   [faq](https://wordpress.org/plugins/tags/faq/)[faq schema](https://wordpress.org/plugins/tags/faq-schema/)
   [structured data](https://wordpress.org/plugins/tags/structured-data/)
 *  [Advanced View](https://wordpress.org/plugins/dotes-faq-generator/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/dotes-faq-generator/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/dotes-faq-generator/reviews/)

## Contributors

 *   [ Luiz Jr. Fernandes ](https://profiles.wordpress.org/dotes/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/dotes-faq-generator/)