=== Glossary Tooltip ===
Name: Glossary Tooltip – Build a Smart Knowledge Base with Tooltips
Contributors: jumedeenkhan, mozedia
Donate link: https://buymeacoffee.com/jumedeenkhan
Tags: glossary tooltip, glossary, tooltip, dictionary, knowledge base
Requires at least: 5.6
Requires PHP: 7.4
Tested up to: 7.0
Stable tag: 2.4.8
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Automatically highlight glossary terms, display beautiful tooltips, and create a searchable A–Z glossary index page for your WordPress website.

== Description ==

**Glossary Tooltip** helps you create a powerful knowledge base for your **WordPress website** by automatically **highlighting glossary terms** and converting them into links.

The plugin displays responsive, customizable tooltips with term definitions, helping visitors understand unfamiliar terms without leaving the page.

A built-in searchable **A–Z glossary index** with live search makes it easy for visitors to browse terms, discover related content, and quickly find the information they need.

It's perfect for **blogs**, **documentation sites**, **knowledge bases**, **educational websites**, **online courses**, and **business websites**.

**Don’t let difficult words confuse your visitors**. Use this plugin to better organize your content, strengthen internal linking, and improve the user experience.

Learn more about **Glossary Tooltip**:

[Official Website](https://glossarytooltip.com/) | [Documentation](https://glossarytooltip.com/docs/) | [Demo](https://glossarytooltip.com/demo/) | [Video Tutorials](https://www.youtube.com/@GlossaryTooltip/videos) | [User Guide](https://glossarytooltip.com/docs/getting-started/) | [FAQs](https://glossarytooltip.com/faq/)

## Key Features

* Automatic glossary term highlighting
* Responsive, customizable tooltips
* Searchable A–Z glossary index with live search
* Glossary categories, synonyms, and aliases
* Per-post and per-term override settings
* Flexible parsing and exclusion rules
* Lightweight and performance optimized
* Easy to Use (for Beginners)

## Turn Technical Terms into Informative Links

Every website contains terms that may be unfamiliar to some visitors. Without clear explanations, readers often leave the page to search elsewhere, interrupting their experience and reducing engagement.

Glossary Tooltip keeps visitors on your website by providing instant definitions exactly where they are needed. Simply create a glossary term once, and the plugin automatically uses it throughout your content, keeping terminology consistent and easy to maintain.

## How Glossary Tooltip Helps Your Website?

A well-organized glossary does more than define terms — it makes your content easier to understand, improves navigation, and helps visitors discover related topics without leaving the page.

Whether you're publishing tutorials, product documentation, developer guides, educational resources, or industry-specific content.

Glossary Tooltip helps organize information into a structured, searchable knowledge base that grows with your website.

By keeping definitions consistent across your content, the plugin reduces manual work, improves readability, and creates a better experience for both new and returning visitors.

## Main Features

Glossary Tooltip includes everything you need to build and manage a professional glossary and knowledge base for your WordPress website.

#### 1. Automatic Glossary Term Highlighting

Automatically detect glossary terms throughout your content and convert them into glossary links. No manual linking is required, helping you save time while keeping terminology consistent across your website.

#### 2. Responsive Tooltips

Display responsive, fully customizable tooltips that work on hover (desktop) and tap (mobile), allowing visitors to view definitions without leaving the page.

#### 3. Searchable A–Z Glossary Index

Create a dedicated glossary index with alphabetical navigation and built-in live search, making it easy for visitors to browse, search, and discover glossary terms.

#### 4. Glossary Terms Management

Manage glossary terms from a dedicated custom post type with support for descriptions, excerpts, featured images, categories, synonyms, and custom settings.

#### 5. Advanced Parsing Engine

Control exactly where glossary terms are highlighted using flexible parsing rules, exclusions, and compatibility options for maximum accuracy.

#### 6. Per-Post Override Settings

Enable or disable glossary highlighting and tooltips for individual posts and pages without affecting your global plugin settings.

#### 7. Lightweight & Performance Optimized

Built for speed with optimized parsing, smart asset loading, and minimal impact on your website's performance.

## Why Choose Glossary Tooltip?

Glossary Tooltip is designed to help you build a professional, easy-to-manage knowledge base without adding unnecessary complexity to your website.

Whether you're managing a small blog or a large documentation website, the plugin scales with your content while remaining lightweight, flexible, and easy to customize.

With automatic term detection, powerful customization options, and performance-focused architecture, you can spend less time managing glossary links and more time creating valuable content.

Glossary Tooltip is a great choice for websites that publish educational or information-rich content, including:

- Blogs
- Documentation websites
- Knowledge bases
- Educational websites
- Online courses
- Product documentation
- Technical documentation
- Developer resources
- Business websites
- SaaS websites
- Medical websites
- Financial websites
- Legal websites

## Shortcodes

This plugin includes two shortcodes: `[glossary_list]` to display your glossary index, and `[glossary_exclude]` to turn off glossary highlighting on part or all of a specific post or page.

**`[glossary_list]`**

Add this shortcode to any post or page to display your full glossary list there — an alphabetically organized (A-Z) list of all your glossary terms, with optional jump navigation and a live search box.

Basic example, showing every glossary term with the default settings:

`[glossary_list]`

*Supported attributes*

* `category="all"` — Only show terms assigned to one or more Glossary Categories. Use a single category slug (e.g. `category="seo"`), or several separated by commas to show terms matching *any* of them (e.g. `category="seo,wordpress"`). Defaults to `all`, which shows every term regardless of category.
* `orderby="name"` — Chooses how terms are sorted *within* each A-Z letter group. A term never moves out of its own letter group — only the order of terms inside each group, and the order the groups themselves appear in, follow `orderby`/`order` together. Accepted values: `name` (alphabetical), `date` (publish date), `menu_order` (the custom order set on the Glossary Terms screen), or `rand` (random order, reshuffled on every page load — group order is unaffected by `order` in this case). Defaults to `name`.
* `order="ASC"` — Sets the sort direction used by `orderby`, and also the direction the A-Z letter groups themselves run in. Accepted values: `ASC` (ascending — groups run A to Z, terms sort oldest to newest for `orderby="date"`) or `DESC` (descending — groups run Z to A, terms sort newest to oldest for `orderby="date"`). Defaults to `ASC`. Has no effect on term order when `orderby="rand"`, and no effect on group order at all when `orderby="rand"`.
* `letters="show"` — Shows or hides the big A-Z letter heading above each group of terms. Accepted values: `show` or `hide`. Defaults to `show`.
* `limit="-1"` — The maximum number of terms to display *per A-Z letter group* — not a total for the whole index. For example, `limit="2"` shows at most 2 terms under A, at most 2 under B, at most 2 under C, and so on. Use `-1` for no limit, showing every matching term. Defaults to `-1`.
* `columns="2"` — How many columns to arrange the terms into within each letter group. Accepts a whole number from `1` to `6`. Defaults to `2`.

*More examples*

Show only terms from the "SEO" category:

`[glossary_list category="seo"]`

Show terms from either the "SEO" or "WordPress" category:

`[glossary_list category="seo,wordpress"]`

Sort terms newest-first, with the letter groups themselves running Z to A:

`[glossary_list orderby="date" order="DESC"]`

Reverse just the A-Z letter groups to run Z to A while keeping terms inside each group alphabetical:

`[glossary_list order="DESC"]`

Show the terms in a random order each time the page loads:

`[glossary_list orderby="rand"]`

Hide the A-Z letter headings and lay terms out in a single column:

`[glossary_list letters="hide" columns="1"]`

Show at most 3 terms per letter, arranged in 4 columns:

`[glossary_list limit="3" columns="4"]`

Combine several attributes together — show only "Web Development" terms, newest first, up to 5 per letter, in 3 columns:

`[glossary_list category="web-development" orderby="date" order="DESC" limit="5" columns="3"]`

**`[glossary_exclude]`**

Add this marker to a specific post or page to turn off automatic glossary term highlighting for part or all of that content — the rest of your site keeps highlighting as normal. It doesn't display anything itself; the marker(s) are simply removed from the page when it renders.

It supports two forms:

**Paired form** — wraps a specific section and excludes only that section, leaving the rest of the post highlighted normally:

`[glossary_exclude]This paragraph will not have any glossary terms highlighted.[/glossary_exclude]`

You can use the paired form as many times as you like in the same post — each pair excludes only the content between it.

**Single-marker form** — placed on its own, excludes everything from that point to the end of the content:

`[glossary_exclude]`

This is useful for pages where you don't want glossary tooltips to appear in part or all of the content, such as a legal page, a code tutorial, or a post that already discusses a term in detail.

Excluding the entire post has the same effect as setting the "Glossary Highlight" option to Off on that post/page's edit screen.

= Need more shortcode examples? =

See the complete shortcode documentation: [Glossary Tooltip >> Documentation >> Glossary Page](https://glossarytooltip.com/docs/glossary-index/)

= Multilingual sites =

Glossary Tooltip stores UTF-8 content and is compatible with multilingual plugins such as WPML and Polylang.

= Documentation and support =

Full documentation and setup guides are available at official website [glossarytooltip.com](https://glossarytooltip.com/).

For questions or issues, please use the [support forum](https://wordpress.org/support/plugin/glossary-tooltip/).

== Installation ==

= Automatic installation =

1. In your WordPress admin, go to **Plugins → Add New Plugin**.
2. Search for **Glossary Tooltip**.
3. Click **Install Now**, then click **Activate**.
4. Go to **Glossary → Settings** to configure the plugin.

= Manual installation =

1. Download the plugin ZIP file.
2. In your WordPress admin, go to **Plugins → Add New Plugin → Upload Plugin**.
3. Choose the downloaded ZIP file and click **Install Now**.
4. Activate the plugin from the **Plugins** screen.

= After activation =

1. Go to **Glossary → Add New Glossary Term**.
2. Enter the term as the title and its definition in the content editor.
3. Publish the term.
4. Visit any post or page containing that word to see it automatically highlighted with a tooltip.
5. Optionally, create a page with the `[glossary_list]` shortcode (or select a glossary index page in **Glossary → Settings**) to display a full glossary index.

== Frequently Asked Questions ==

= Do I need to manually link glossary terms in my content? =

No. Once a glossary term is published, the plugin automatically detects and highlights matching words across the post types you've selected in the settings.

= How do I show a full list of glossary terms on a page? =

Use the `[glossary_list]` shortcode on any post or page, or select a glossary index page in **Glossary → Settings → Glossary Index Page**. The index lists terms alphabetically and includes an optional A–Z navigation and live search box.

= Can I enable or disable highlighting for a single post or page? =

Yes. Each post, page, and supported custom post type includes Glossary Highlight and Tooltip settings. You can choose **Default, On, or Off** to control glossary highlighting and tooltips for that specific content without affecting the rest of your website.

= How do I prevent the glossary from parsing a paragraph? =

Yes. Wrap any section with `[glossary_exclude]...[/glossary_exclude]` to skip highlighting for just that section, or add a single `[glossary_exclude]` marker on its own to skip highlighting for the rest of the content that follows it. You can also set the "Glossary Highlight" option to Off on the post/page edit screen to skip highlighting for the entire post.

= Can I control tooltips for just one post or page? =

Yes. Each post/page edit screen includes a "Tooltip" setting with three options: Default (follows the site-wide tooltip setting), On, or Off. This lets you enable or disable tooltips for a single post or page without changing the global setting.

= Can I stop one specific glossary term from being highlighted everywhere? =

Yes. Each glossary term has per-term visibility controls that let you exclude it from auto-highlighting and/or the glossary index, without affecting any other terms.

= Can I control how many times a term is highlighted on the same page? =

Yes. In **Glossary → Settings → General**, you can highlight a term only once, a limited number of times, every Nth occurrence, or every occurrence.

= Can a term have alternate names or abbreviations? =

Yes. You can add synonyms/aliases to a glossary term, and any of those alternate forms will be highlighted and link to the same term.

= Will highlighting break my headings or existing links? =

No, by default the plugin ignores headings (H1–H6) and text that is already inside a link, so your existing structure and links are not altered. These behaviors can be adjusted in the settings.

= Does this affect my site's internal search results? =

You can optionally exclude glossary terms from your site's internal search results in **Glossary → Settings → General**. This does not affect Google or other external search engines.

= Can I choose which side of the term the tooltip appears on? =

Yes. In **Glossary → Settings → Tooltip**, the "Tooltip position" option lets you choose top, bottom, left, or right. Top is recommended for most layouts.

= I changed the glossary permalink slug and now get 404 errors. How do I fix this? =

Go to **Glossary → Settings → Advanced** and click **Flush Rewrite Rules**, or go to **Settings → Permalinks** and click **Save Changes**.

= I updated a term but the site still shows the old content. What should I do? =

If you have content caching enabled, use the **Clear Glossary Cache** tool on the Advanced settings tab, then clear any third-party caching or CDN cache your site may be using.

= Can I back up or transfer my plugin settings to another site? =

Yes. On the Advanced settings tab you can export all plugin settings as a JSON file and import that file on another installation. You can also reset all settings to their defaults.

= How do I move glossary terms to another WordPress site? =

Glossary terms are a standard WordPress content type, so you can use the built-in **Tools → Export** and **Tools → Import** screens to move them between sites.

= How does Glossary Tooltip help improve my website's SEO? =

Glossary Tooltip can improve your site's SEO by automatically creating internal links between related content and generating dedicated glossary term pages. This helps search engines better understand your website structure while making it easier for visitors to discover relevant information.

= Can I customize glossary term titles? =

Yes. You can customize the displayed glossary term title from the Glossary Term Settings. For example, you can automatically add text such as **"What Is:"**, **"Definition of:"**, or any custom prefix or suffix to glossary term titles without changing the original glossary term name.

= How do I exclude content from automatic glossary highlighting? =

Wrap the content with the `[glossary_exclude] paragraph text here... [/glossary_exclude]` markers to prevent glossary terms inside that section from being automatically highlighted. Only the wrapped content is excluded—glossary highlighting continues to work normally everywhere else on the page.

= Does the plugin work with all WordPress themes? =

Yes. Glossary Tooltip is designed to work with any well-coded WordPress theme that follows WordPress coding standards. It has been tested with popular themes including Twenty Twenty-Five, GeneratePress, Astra, Kadence, Blocksy, Genesis Framework, and other standards-compliant themes.

If a theme or another plugin prevents glossary links or tooltips from displaying correctly, the plugin includes flexible compatibility settings to help resolve most conflicts.

= Does the plugin work with multilingual sites? =

Absolutely! The plugin supports UTF-8 and is fully compatible with WPML, Polylang and popular multilingual plugins.

= Can I import glossary terms from another website? =

Yes. Glossary Tooltip stores terms as a standard WordPress custom post type, so you can use WordPress's built-in **Tools → Export** and **Tools → Import** features to transfer glossary terms, categories, synonyms, featured images, and other supported data between WordPress sites. You can also find these instructions in the plugin's Advanced Settings page.

= How do I control where tooltips appear? =

Yes. You can choose where tooltips appear from the plugin settings. Glossary Tooltip supports automatic positioning as well as fixed positions, including **Top, Bottom, Left, and Right**, allowing you to choose the placement that works best for your site.

= Does it support synonyms and variations? =

Yes. Glossary Tooltip supports synonyms and term variations out of the box. You can assign multiple synonyms or alternate spellings to a glossary term, and they will automatically be recognized and highlighted throughout your content.

= Does the plugin slow down my site? =

No. The plugin includes several performance options: it can skip parsing when no glossary terms exist, cache parsed content, load scripts in the footer, load assets inline, and limit parsing to the main query only.

= Where can I get help? =

Visit the [support forum](https://wordpress.org/support/plugin/glossary-tooltip/) or the [documentation site](https://www.glossarytooltip.com/).

== Screenshots ==

1. Configure the plugin using the General Settings tab, including highlighting, parsing, and core behavior.
2. Customize the Glossary Index page layout, search, alphabetical navigation, and display options.
3. Manage glossary term behavior, links, excerpts, and content display from the Glossary Term settings.
4. Customize tooltip appearance, position, colors, mobile behavior, and display options.
5. Fine-tune plugin behavior with Advanced Settings for better performance and compatibility.
6. Frontend Glossary Index page with alphabetical navigation and integrated live search.
7. Automatically highlighted glossary terms with interactive tooltips displayed on hover or tap.
8. Browse glossary terms quickly using the alphabetical A–Z, Special Characters, and 0–9 navigation.
9. Instantly find glossary terms using the built-in live search terms feature.
10. Create and edit glossary terms with descriptions, excerpts, featured images, and custom settings.
11. Override highlight and tooltip settings for individual posts, pages or custom post types.
12. Manage all glossary terms from the dedicated WordPress Glossary Terms dashboard.
13. Get started quickly with the Setup Wizard for easy plugin configuration.

== Upgrade Notice ==

= 2.4.8 =
Fixed several code quality, glossary highlighting corrupting Elementor/Avada/Divi/Beaver/WPBakery/Oxygen live-editor canvases, and fixes accented terms never being highlighted in case-insensitive mode.

= 2.4.7 =
Maintenance release: fixes a minor CSS bug, corrects two color-picker defaults, and removes unused code. Safe to update.

= 2.4.6 =
`[glossary_exclude]` now supports a paired, closing form to exclude only the wrapped content, instead of everything to the end of the post.

= 2.4.5 =
`[glossary_list order="DESC"]` now also reverses the order of the A-Z letter groups themselves (Z to A), instead of only reversing the terms inside each group.

= 2.4.4 =
Fixes the `[glossary_list category="..."]` attribute, which previously always returned an empty result.

= 2.4.3 =
`[glossary_list]`'s `limit` attribute now applies per A-Z letter group instead of as one total across the whole index.

= 2.4.2 =
`[glossary_list]` now accepts `category`, `orderby`, `order`, `letters`, `limit`, and `columns` attributes for filtering, sorting, and laying out the glossary index.

= 2.4.1 =
The glossary index shortcode is now `[glossary_list]` (underscore); the previous `[glossary-list]` tag is deprecated. Per-post "Disable glossary highlighting" checkbox replaced with separate Glossary Highlight and Tooltip dropdown settings (Default/On/Off).

= 2.4.0 =
Adds a Maintenance Tools panel (flush rewrite rules, clear glossary cache), a System Information panel on the Advanced tab, and a new Tooltip Position setting (top, bottom, left, right); performance and content-parsing options moved back to General settings.

== Changelog ==

= 2.4.8 =

* Improved: Fixed several code quality and internationalization issues found by the WordPress.org Plugin Check tool (missing translator comments, unslashed input, readme formatting).
* Fixed: Glossary parsing was corrupting page builder layouts (Elementor, Avada/Fusion Builder) by highlighting terms inside their live-editing canvas. Parsing now skips content while Elementor, Avada, Divi, Beaver Builder, WPBakery, or Oxygen is in active edit mode.
* Fixed: Accented/non-ASCII glossary terms were silently never highlighted in case-insensitive mode, due to `strtolower()` not folding non-ASCII characters. Now uses `mb_strtolower()`.

= 2.4.7 =

* Fixed: Settings page color-picker "default" swatches didn't match the actual documented defaults.
* Fixed: A per-post settings meta box was missing `wp_unslash()` before sanitizing deactivation-feedback fields.
* Changed: The glossary single-page "back link" template now uses the shared `get_gtt_option()` helper.
* Removed: Unused CSS files and admin view stubs left over from earlier versions.
* Tested up to WordPress 7.0.2.

= 2.4.6 =

* Added: `[glossary_exclude]` now supports a paired form — `[glossary_exclude]...[/glossary_exclude]` — excluding only the content between the markers, with multiple blocks supported per post. The original unpaired marker still works as before.

= 2.4.5 =

* Fixed: `[glossary_list order="DESC"]` only reversed terms inside each A-Z letter group, leaving the groups themselves (A, B, C...) in ascending order. `order` now also reverses the letter-group sequence, running the whole index Z to A, with the jump-navigation links reordering to match.

= 2.4.4 =

* Fixed: The `[glossary_list]` shortcode's `category` attribute always returned an empty index, because the glossary category taxonomy wasn't registered yet when the terms cache was first built. Plugin startup is now correctly deferred until the `init` hook.

= 2.4.3 =

* Changed: The `[glossary_list]` shortcode's `limit` attribute now caps the number of terms shown *per A-Z letter group*, instead of one total across the whole index.

= 2.4.2 =

* New: `[glossary_list]` now accepts `category`, `orderby`, `order`, `letters`, `limit`, and `columns` attributes for filtering, sorting, hiding letters, capping terms shown, and laying out 1-6 columns.
* Fixed: `orderby`/`order` now sort terms *inside* each A-Z letter group only — the groups themselves always stay in fixed alphabetical order.

= 2.4.1 =

* Changed: The glossary index shortcode is now `[glossary_list]` (underscore) per WordPress guidelines; the old `[glossary-list]` tag is deprecated.
* Changed: The per-post "Disable glossary highlighting" checkbox has been replaced with two independent dropdowns — "Glossary Highlight" and "Tooltip" — each offering Default, On, or Off.

= 2.4.0 =

* New: "Tooltip position" setting on the Tooltip tab — above, below, left, or right of a highlighted term.
* New: "Maintenance Tools" card on the Advanced tab with one-click "Flush Rewrite Rules" and "Clear Glossary Cache" actions.
* New: System Information panel on the Advanced tab with a one-click copy-to-clipboard button.
* Changed: The Advanced tab's Import/Export section is now scoped to plugin settings only (JSON); glossary term export/import now uses core's Tools → Export/Import.
* Improved: Performance and asset-loading options moved from Advanced back to General settings, under a new "Performance & Asset Loading" section.
* Improved: Settings screen visual design refined for a more consistent, modern appearance.

= 2.3.0 =

* New: Import & Export section on the Advanced tab — settings export/import/reset, glossary data export (CSV/JSON), and a 3-step migration wizard.
* New: All import/export/reset actions run over AJAX with nonce verification and a `manage_options` capability check.

= 2.2.1 =

* Improved: Settings layout now uses the full available width with a proportional main/sidebar split; tab navigation redesigned into a segmented pill style.
* Improved: Content-parsing options moved from Advanced back to General settings, under a new "Content Parsing" section.
* Improved: Renamed the "Index Page" and "Terms" tabs to "Glossary Index Page" and "Glossary Terms" for clarity.

= 2.2.0 =

* New: Redesigned settings screen with a branded header, version badge, quick action links, and a two-column layout with a persistent sidebar for the installation guide and support links.
* New: "Advanced" settings tab groups parsing-performance and asset-loading options.
* New: "Highlight only space-separated terms" option to prevent matching inside compound words.
* New: "Load scripts in footer" option for faster perceived load times.

= 2.1.1 =

* Fixed: Deactivating the plugin no longer deletes your glossary settings.
* Fixed: "Disable tooltips on the glossary index" setting now works correctly.
* Fixed: Glossary highlighting no longer skips a page just because its slug happens to be "glossary".
* Fixed: A closure/filter mismatch that could force all outgoing emails to HTML formatting after using the deactivation feedback form.
* Security: Added nonce verification to the deactivation feedback form and a capability check for the "disable highlight" post setting.
* Accessibility: Tooltips are now visible on keyboard focus, not just mouse hover.
* New: Synonyms/aliases for glossary terms.
* New: Per-term visibility controls (exclude a term from auto-highlighting and/or the glossary index).
* Improved: Replaced deprecated `get_post_custom()` calls with targeted `get_post_meta()` calls.
* Improved: Corrected the plugin's declared minimum PHP version to match the code.
* Improved: Synonym/alias matching now treats a term and its synonyms as one keyword group, always preferring the longest match to prevent overlapping links.

= 2.0.1 =

* Improved tooltip behavior.
* Performance improvements.
* Minor fixes.

= 2.0.0 =

* Added advanced glossary settings.
* Added glossary index improvements.
* Added tooltip customization options.
* Added live search on the glossary index.
* Improved parsing performance.

= 1.0.1 =

* Settings improvements.

= 1.0 =

* Initial release.
