{"id":287321,"date":"2026-05-18T16:00:17","date_gmt":"2026-05-18T16:00:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/linked-terms\/"},"modified":"2026-05-19T14:12:00","modified_gmt":"2026-05-19T14:12:00","slug":"clever-linked-terms","status":"publish","type":"plugin","link":"https:\/\/es-gt.wordpress.org\/plugins\/clever-linked-terms\/","author":14684411,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.10","stable_tag":"1.0.10","tested":"6.9.4","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Clever Linked Terms","header_author":"Jeff Brigman, Linked Terms","header_description":"Advanced glossary with automatic term linking, hover tooltips, and optional FluentCommunity integration","assets_banners_color":"648eca","last_updated":"2026-05-19 14:12:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/jeffbrigman.com\/linked-terms","header_author_uri":"https:\/\/linkedterms.com","rating":5,"author_block_rating":0,"active_installs":0,"downloads":62,"num_ratings":1,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.10":{"tag":"1.0.10","author":"jealbr75","date":"2026-05-19 14:12:00"}},"upgrade_notice":{"1.0.10":"<p>Release-candidate update recommended for FluentCommunity users because it hardens portal analytics context handling before public release.<\/p>","1.0.9":"<p>Recommended update for admins managing a growing relationship library because it adds relationship counts, linking status, and conflict visibility to the term list.<\/p>","1.0.8":"<p>Recommended update for FluentCommunity users who want glossary link clicks to keep the community portal open in the original tab.<\/p>","1.0.7":"<p>Recommended update for FluentCommunity users because it fixes portal-side analytics tracking.<\/p>","1.0.6":"<p>Recommended update for relationship matching accuracy, cleaner frontend output, and conflict visibility.<\/p>","1.0.5":"<p>Recommended update for relationship analytics and existing relationship engine users.<\/p>","0.3.9":"<p>Recommended update for all users.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3535863,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3535863,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3535863,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3535863,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.10"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3535863,"resolution":"1","location":"assets","locale":"","width":1918,"height":794},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3535863,"resolution":"2","location":"assets","locale":"","width":1659,"height":1447},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3535863,"resolution":"3","location":"assets","locale":"","width":1003,"height":2048},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3535863,"resolution":"4","location":"assets","locale":"","width":1667,"height":716},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3535863,"resolution":"5","location":"assets","locale":"","width":1918,"height":844}},"screenshots":{"1":"Linked Terms settings screen.","2":"Glossary index page with A-Z navigation.","3":"Tooltip display in WordPress or FluentCommunity content."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[9804,258668,2409,1901,788],"plugin_category":[57],"plugin_contributors":[263390],"plugin_business_model":[],"class_list":["post-287321","plugin","type-plugin","status-publish","hentry","plugin_tags-definitions","plugin_tags-fluentcommunity","plugin_tags-glossary","plugin_tags-terms","plugin_tags-tooltip","plugin_category-taxonomy","plugin_contributors-jealbr75","plugin_committers-jealbr75"],"banners":{"banner":"https:\/\/ps.w.org\/clever-linked-terms\/assets\/banner-772x250.png?rev=3535863","banner_2x":"https:\/\/ps.w.org\/clever-linked-terms\/assets\/banner-1544x500.png?rev=3535863","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/clever-linked-terms\/assets\/icon-128x128.png?rev=3535863","icon_2x":"https:\/\/ps.w.org\/clever-linked-terms\/assets\/icon-256x256.png?rev=3535863","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/clever-linked-terms\/assets\/screenshot-1.png?rev=3535863","caption":"Linked Terms settings screen."},{"src":"https:\/\/ps.w.org\/clever-linked-terms\/assets\/screenshot-2.png?rev=3535863","caption":"Glossary index page with A-Z navigation."},{"src":"https:\/\/ps.w.org\/clever-linked-terms\/assets\/screenshot-3.png?rev=3535863","caption":"Tooltip display in WordPress or FluentCommunity content."},{"src":"https:\/\/ps.w.org\/clever-linked-terms\/assets\/screenshot-4.png?rev=3535863","caption":""},{"src":"https:\/\/ps.w.org\/clever-linked-terms\/assets\/screenshot-5.png?rev=3535863","caption":""}],"raw_content":"<!--section=description-->\n<p>Clever Linked Terms is an advanced glossary plugin that automatically links glossary terms throughout your WordPress site with hover tooltips. It supports both standard WordPress content and FluentCommunity portal integration.<\/p>\n\n<p>Visit https:\/\/jeffbrigman.com\/community for documentation and support. Privacy Policy: https:\/\/jeffbrigman.com\/community<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin optionally connects to third-party\/external services only when the Term Discovery add-on is enabled and an administrator uses the discovery or API-test tools. The plugin works without these services, but automatic definition, synonym, and encyclopedia lookup features will not be available unless the relevant service is enabled.<\/p>\n\n<p>When a lookup is performed, the searched glossary term is sent to the selected provider. When an API-key-protected service is used or tested, the configured API key is sent to that provider as required for authentication. API responses may be cached temporarily in WordPress transients to avoid repeated requests for the same term.<\/p>\n\n<p><strong>Wikimedia \/ Wikipedia REST API<\/strong>\n* Purpose: Retrieve encyclopedia summaries from Wikipedia as an optional fallback source.\n* Endpoint\/domain used: https:\/\/en.wikipedia.org\/api\/rest_v1\/page\/summary\/\n* Data sent: The glossary term being searched is included in the request URL when an administrator asks Term Discovery to fetch encyclopedia content.\n* Privacy Policy: https:\/\/foundation.wikimedia.org\/wiki\/Privacy_policy\n* Terms of Use: https:\/\/foundation.wikimedia.org\/wiki\/Policy:Terms_of_Use\n* API documentation: https:\/\/www.mediawiki.org\/wiki\/API:REST_API<\/p>\n\n<p><strong>Merriam-Webster Dictionary API<\/strong>\n* Purpose: Retrieve dictionary definitions.\n* Endpoint\/domain used: https:\/\/www.dictionaryapi.com\/api\/v3\/references\/collegiate\/json\/\n* Data sent: The searched glossary term and the configured Merriam-Webster Dictionary API key are sent when an administrator requests a definition lookup or tests the API key.\n* Privacy Policy: https:\/\/www.merriam-webster.com\/privacy-policy\n* Terms of Use: https:\/\/www.dictionaryapi.com\/info\/terms-of-service.htm\n* Requires API key.<\/p>\n\n<p><strong>Merriam-Webster Thesaurus API<\/strong>\n* Purpose: Retrieve synonyms, antonyms, and related terms.\n* Endpoint\/domain used: https:\/\/www.dictionaryapi.com\/api\/v3\/references\/thesaurus\/json\/\n* Data sent: The searched glossary term and the configured Merriam-Webster Thesaurus API key are sent when an administrator requests a synonym lookup or tests the API key.\n* Privacy Policy: https:\/\/www.merriam-webster.com\/privacy-policy\n* Terms of Use: https:\/\/www.dictionaryapi.com\/info\/terms-of-service.htm\n* Requires API key.<\/p>\n\n<p><strong>Encyclopaedia Britannica API<\/strong>\n* Purpose: Retrieve encyclopedic articles and summaries.\n* Endpoint\/domain used: https:\/\/syndication.api.eb.com\/production\/articles and https:\/\/syndication.api.eb.com\/production\/article\/\n* Data sent: The selected article type\/category, the searched glossary term used to match returned article titles, article IDs from Britannica search results, and the configured Britannica API key are sent when an administrator requests encyclopedia content or tests the API key.\n* Privacy Policy: https:\/\/corporate.britannica.com\/privacy.html\n* Terms of Use: https:\/\/corporate.britannica.com\/termsofuse.html\n* Requires API key.<\/p>\n\n<p><strong>Free Dictionary API<\/strong>\n* Purpose: Retrieve dictionary definitions and pronunciation data as an optional fallback source.\n* Endpoint\/domain used: https:\/\/api.dictionaryapi.dev\/api\/v2\/entries\/en\/\n* Data sent: The searched glossary term is included in the request URL when an administrator requests a definition lookup.\n* Privacy Policy: https:\/\/dictionaryapi.dev\/\n* Terms of Use: https:\/\/dictionaryapi.dev\/\n* No registration required.<\/p>\n\n<p><strong>API Ninjas Thesaurus API<\/strong>\n* Purpose: Retrieve synonyms and antonyms.\n* Endpoint\/domain used: https:\/\/api.api-ninjas.com\/v1\/thesaurus\n* Data sent: The searched glossary term and the configured API Ninjas API key are sent when an administrator requests a synonym lookup or tests the API key.\n* Privacy Policy: https:\/\/api-ninjas.com\/privacy\n* Terms of Use: https:\/\/api-ninjas.com\/terms\n* Requires API key.<\/p>\n\n<p><strong>WordsAPI through RapidAPI<\/strong>\n* Purpose: Retrieve word data such as definitions, synonyms, and pronunciation.\n* Endpoint\/domain used: https:\/\/wordsapiv1.p.rapidapi.com\/words\/\n* Data sent: The searched glossary term and the configured RapidAPI key are sent when an administrator requests WordsAPI data or tests the API key.\n* RapidAPI Privacy Policy: https:\/\/rapidapi.com\/privacy\n* RapidAPI Terms of Use: https:\/\/rapidapi.com\/terms\n* Requires RapidAPI key.<\/p>\n\n<p><strong>Plugin support and documentation site<\/strong>\n* Purpose: The readme and admin help screens link to the plugin documentation\/support community. The plugin does not automatically send site or user data to this site.\n* Site: https:\/\/linkedterms.com and https:\/\/jeffbrigman.com\/community\n* Privacy Policy: https:\/\/linkedterms.com\/privacy-policy\/ and https:\/\/jeffbrigman.com\/privacy-policy\/\n* Terms of Use: https:\/\/linkedterms.com\/terms\/ and https:\/\/jeffbrigman.com\/terms\/<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Automatic term linking in WordPress posts, pages, and custom post types<\/li>\n<li>Hover tooltips displaying term definitions<\/li>\n<li>Optional FluentCommunity integration with SPA compatibility<\/li>\n<li>Configurable link behavior (link all or limit per term)<\/li>\n<li>Light and dark mode tooltip styling<\/li>\n<li>Glossary index page with A-Z navigation<\/li>\n<li>Relationship-aware analytics tracking (add-on)<\/li>\n<li>Import\/Export (add-on)<\/li>\n<li>Term Discovery with API support (add-on)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/linked-terms<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Navigate to Linked Terms \u2192 Settings to configure the plugin.<\/li>\n<li>Create your first glossary term under Linked Terms \u2192 Add New.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20fluentcommunity%3F\"><h3>Does this work with FluentCommunity?<\/h3><\/dt>\n<dd><p>Yes! Enable the FluentCommunity add-on in the Add-Ons tab to integrate with FluentCommunity portal.<\/p><\/dd>\n<dt id=\"can%20i%20control%20which%20post%20types%20have%20term%20linking%3F\"><h3>Can I control which post types have term linking?<\/h3><\/dt>\n<dd><p>Yes, in the WordPress tab you can select exactly which post types should include glossary term linking.<\/p><\/dd>\n<dt id=\"how%20do%20i%20create%20a%20glossary%20index%20page%3F\"><h3>How do I create a glossary index page?<\/h3><\/dt>\n<dd><p>Go to Settings \u2192 General and click \"Create Index Page\" to automatically generate an A-Z glossary index.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Added a release-candidate hardening pass for FluentCommunity analytics loading.<\/li>\n<li>Prevented the normal WordPress analytics enqueue from initializing on FluentCommunity portal requests so portal events keep the correct FluentCommunity context.<\/li>\n<li>Cleaned up direct portal script enqueue calls so the registered FluentCommunity linker\/analytics handles are printed without overriding their registered sources.<\/li>\n<li>Updated upgrade notes for release testing.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Added relationship visibility columns to the Linked Terms admin list.<\/li>\n<li>Added linking status badges so admins can quickly see whether a term is active for WordPress, FluentCommunity, or both.<\/li>\n<li>Added list-table conflict summaries for duplicate relationship phrases without needing to open each term.<\/li>\n<li>Fixed duplicated analytics chart wrapper markup on the analytics screen.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Open FluentCommunity glossary links in a new browser tab while preserving normal WordPress-side link behavior.<\/li>\n<li>Added a context-specific linker flag so FluentCommunity can use new-tab behavior without changing standard WordPress content.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Fixed FluentCommunity analytics loading by printing the portal analytics handle through the FluentCommunity portal footer hook.<\/li>\n<li>Added a FluentCommunity analytics config alias so the tracker can initialize reliably inside the portal.<\/li>\n<li>Quieted analytics console output unless debug mode is enabled.<\/li>\n<li>Added a frontend processing event after SPA term linking so analytics can observe FluentCommunity relinks cleanly.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added priority-aware semantic matching so primary terms and stronger relationship types win when phrases overlap.<\/li>\n<li>Added duplicate\/conflict warnings in the relationship editor when the same alternate phrase appears on another term.<\/li>\n<li>Fixed frontend relationship metadata preservation so linked synonyms, aliases, abbreviations, and variations keep their canonical term and relationship type in markup and analytics.<\/li>\n<li>Reduced frontend console noise by honoring debug mode for Linked Terms logs.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added relationship-aware analytics reporting by relationship type.<\/li>\n<li>Added top matched words and phrases reporting for synonyms, variations, abbreviations, aliases, and primary terms.<\/li>\n<li>Added relationship, canonical term, and matched text columns to analytics CSV exports.<\/li>\n<li>Fixed relationship analytics tracking so frontend events correctly send relationship metadata instead of undefined variables.<\/li>\n<li>Added safer analytics table repair for existing installs missing relationship metadata columns.<\/li>\n<li>Fixed a Term Discovery admin JavaScript string issue that could break the API test script.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added manual term relationships for synonyms, variations, abbreviations, and aliases that link back to the canonical glossary term.<\/li>\n<li>Initial public release on WordPress.org<\/li>\n<li>Removed licensing system - plugin is now 100% free<\/li>\n<li>Full WordPress coding standards compliance<\/li>\n<\/ul>\n\n<h4>0.3.9<\/h4>\n\n<ul>\n<li>FIX: WordPress post type settings now properly prevent JS from loading on disabled post types<\/li>\n<\/ul>\n\n<h4>0.3.8<\/h4>\n\n<ul>\n<li>FIX: Removed .comment_text_body from exclusion list<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>FIX: Content type checkboxes now save correctly<\/li>\n<li>FIX: Titles and comments now excluded from term linking<\/li>\n<li>Version consistency across all files<\/li>\n<\/ul>\n\n<h4>0.2.99<\/h4>\n\n<ul>\n<li>SECURITY: Full security audit completed<\/li>\n<li>Added ABSPATH checks to all files<\/li>\n<li>Added index.php to all directories<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Advanced glossary plugin with automatic term linking, hover tooltips, and optional FluentCommunity integration.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/287321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=287321"}],"author":[{"embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jealbr75"}],"wp:attachment":[{"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=287321"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=287321"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=287321"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=287321"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=287321"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=287321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}