=== Glossary Tooltip – Highlight Terms Automatically and Show Tooltips ===
Contributors: jumedeenkhan, mozedia
Donate link: https://buymeacoffee.com/jumedeenkhan
Tags: glossary, vocabulary, dictionary, tooltip, lexicon
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 7.1
Stable tag: 2.6.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Turn glossary terms into automatic links, show instant tooltip with definition, build a searchable A–Z glossary index knowledge base page.

== Description ==

**Glossary Tooltip** automatically detects glossary terms in your WordPress website content, converts them into links, and displays clean, **responsive tooltips with their definitions** — helping visitors understand unfamiliar terms without leaving the page.

A built-in, **searchable A–Z glossary index** with live search lets visitors browse every term at a glance, while consistent internal linking between your content and its definitions improves both readability and site structure.

It's well suited for **blogs, documentation sites, knowledge bases, online courses, SaaS products, and any business, medical, financial, or legal website** that relies on specialized terminology.

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) | [FAQs](https://glossarytooltip.com/faq/)

= Key Features =

* **Automatic term highlighting** — publish a glossary term once and it's automatically detected and linked across the post types you choose, with no manual linking.
* **Responsive tooltips** — definitions on hover (desktop) or tap (mobile), with configurable position, colors, width, and excerpt length.
* **Searchable A–Z glossary index** — a dedicated `[glossary_list]` index page with alphabetical navigation, live search, categories, and flexible sorting and layout.
* **Categories, synonyms & aliases** — organize terms into categories, and add alternate spellings or abbreviations that highlight and link back to the same term.
* **Per-post and per-term overrides** — turn highlighting or tooltips on or off for individual posts, pages, or specific terms, independent of the global settings.
* **Flexible parsing controls** — limit highlighting to chosen post types, skip headings and existing links, exclude specific HTML tags, control repeat/skip behavior, and exclude content with the `[glossary_exclude]` shortcode.
* **Built for performance** — optional content caching, footer script loading, inline asset delivery, and smart parsing that skips content with no matching terms.
* **Settings backup & migration** — export or import all plugin settings as JSON, reset to defaults, and move glossary terms between sites with WordPress's built-in Tools → Export/Import.

= 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`.

*Examples*

Show only terms from the "SEO" category:

`[glossary_list category="seo"]`

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

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

Add `[glossary_exclude]` 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 and 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? =

Add the `[glossary_list]` shortcode to any post or page, or select a glossary index page under **Glossary → Settings → Glossary Index Page**. The index lists terms alphabetically, with optional A–Z navigation and live search.

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

Yes. Every post, page, and supported post type has its own Glossary Highlight and Tooltip settings, each set to Default, On, or Off, independent of the site-wide settings.

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

Wrap the text with `[glossary_exclude]...[/glossary_exclude]` to skip just that section, or place a single `[glossary_exclude]` marker to skip everything after it. To exclude an entire post, set its "Glossary Highlight" option to Off instead.

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

Yes. Each post or page has a Tooltip setting — Default, On, or Off — that overrides the site-wide tooltip setting for that content only.

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

Yes. Every glossary term has its own visibility controls to 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. Under **Glossary → Settings → General**, choose to highlight each term once, a set number of times, every Nth occurrence, or every occurrence.

= Can a term have alternate names or abbreviations? =

Yes. Add synonyms or alternate spellings to any glossary term, and each one will be recognized, highlighted, and linked back to the same term.

= Will highlighting break my headings or existing links? =

No. By default, the plugin skips headings (H1–H6) and text already inside a link, so your existing structure stays intact. Both behaviors can be changed 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 under **Glossary → Settings → General**. This has no effect on Google or other external search engines.

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

Yes. Under **Glossary → Settings → Tooltip**, set the tooltip position to 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 visit **Settings → Permalinks** and click Save Changes.

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

If content caching is enabled, click Clear Glossary Cache on the Advanced settings tab, then clear any third-party caching or CDN cache your site uses.

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

Yes. The Advanced settings tab lets you export all plugin settings as a JSON file, import that file on another site, or reset everything back to defaults.

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

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

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

By creating internal links between related content and generating a dedicated page for each glossary term, it helps search engines understand your site structure while making it easier for visitors to find relevant information.

= Can I customize glossary term titles? =

Yes. Add a custom prefix — such as **"What Is:"** or **"Definition of:"** — before glossary term titles from the Glossary Term settings, without changing the term names themselves.

= Does the plugin work with all WordPress themes? =

Yes. It's built to work with any standards-compliant WordPress theme, and has been tested with popular themes including Twenty Twenty-Five, GeneratePress, Astra, Kadence, and Blocksy.

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

= Does the plugin slow down my site? =

No. Built-in performance options let you 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.6.0 =
Fixes several glossary highlighting, caching, index, and settings issues, and improves keyboard support for tooltips. Also fixes glossary links and accented terms. Requires WordPress 6.0+. Existing settings are kept.

== Changelog ==

= 2.6.0 =

* Fixed glossary highlighting issues with images, nested code, existing links, HTML atts, accented terms, and text containing character.
* Fixed a rare case where a very long post using [glossary_exclude] could be published blank.
* Fixed deleting a glossary term not refreshing the glossary right away.
* Fixed tooltips not working on blog and archive pages.
* Fixed caching and glossary link issues, including problems after changing content, settings, or the glossary slug.
* Fixed several glossary index and settings issues, including A-Z navigation, accented headings, post type selection, and custom text settings.
* Improved tooltip accessibility with keyboard support, Escape to close, and reduced-motion support.
* Improved performance and front-end loading.
* Updated asset loading and settings tab behavior.
* Now requires WordPress 6.0 or newer.

= 2.5.0 =

* Improved WordPress 7.1 compatibility and resolved several issues.
* Improved code quality and documentation.

= 2.4.8 =

* Improved compatibility with Elementor, Avada, Divi, Beaver Builder, WPBakery, and Oxygen.
* Fixed accented and non-ASCII terms not being highlighted correctly.
* Improved code quality and internationalization.

= 2.4.7 =

* Fixed settings and color-picker issues.
* Removed unused code.

= 2.4.6 =

* Added paired [glossary_exclude]...[/glossary_exclude] blocks for excluding specific content.

= 2.4.5 =

* Fixed DESC sorting so the complete glossary index is ordered from Z to A.

= 2.4.4 =

* Fixed the glossary_list category filter.

= 2.4.3 =

* Changed the glossary_list limit to apply per A-Z letter group.

= 2.4.2 =

* Added filtering, sorting, letter, limit, and column options to [glossary_list].
* Improved sorting within A-Z groups.

= 2.4.1 =

* Changed the glossary index shortcode to [glossary_list].
* Added separate per-post Glossary Highlight and Tooltip controls.

= 2.4.0 =

* Added tooltip position settings, maintenance tools, and system information.
* Improved the settings layout and organization.

= 2.3.0 =

* Added Import/Export tools and a migration wizard.
* Added secure AJAX handling for these operations.

= 2.2.1 =

* Improved the settings layout and navigation.
* Reorganized content-parsing settings.

= 2.2.0 =

* Redesigned the settings screen.
* Added advanced parsing, performance, and asset-loading options.
* Added space-separated term highlighting and footer script loading.

= 2.1.1 =

* Added synonyms and aliases and per-term visibility controls.
* Improved tooltip accessibility and highlighting behavior.
* Improved security, compatibility, and performance.

= 2.0.1 =

* Improved tooltip behavior and performance.

= 2.0.0 =

* Added advanced glossary settings, tooltip customization, live search, and glossary index improvements.
* Improved parsing performance.
