{"id":328323,"date":"2026-09-09T11:24:47","date_gmt":"2026-09-09T11:24:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/hub-concept-graph\/"},"modified":"2026-09-10T14:47:49","modified_gmt":"2026-09-10T14:47:49","slug":"decomp-concept-graph","status":"publish","type":"plugin","link":"https:\/\/li.wordpress.org\/plugins\/decomp-concept-graph\/","author":23517841,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Decomp Concept Graph","header_author":"Decomp Academy","header_description":"Turn your posts into an interactive D3.js concept graph with categories, levels and relationships. Compatible with Polylang and WPML.","assets_banners_color":"434a86","last_updated":"2026-09-10 14:47:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/decomp.finance\/en\/decomp-concept-graph\/","header_author_uri":"https:\/\/decomp.finance","rating":0,"author_block_rating":0,"active_installs":0,"downloads":99,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.8":{"tag":"1.0.8","author":"decompacademy","date":"2026-09-09 14:50:10","revision":3688494},"1.0.9":{"tag":"1.0.9","author":"decompacademy","date":"2026-09-09 15:38:24","revision":3688581},"1.1.0":{"tag":"1.1.0","author":"decompacademy","date":"2026-09-10 14:47:49","revision":3690081}},"upgrade_notice":{"1.1.0":"<p>Mobile fix for the floating graph window, complete Spanish translation, and a clearer name for the Export tab.<\/p>","1.0.9":"<p>Fixes the blank Upgrade \/ Plans and Pricing screen (Freemius SDK 2.13.4).<\/p>","1.0.8":"<p>Maintenance release.<\/p>","1.0.7":"<p>Minor input-sanitization refinement.<\/p>","1.0.6":"<p>Packaging and input-sanitization hardening.<\/p>","1.0.5":"<p>WordPress.org compliance: all premium\/locked-feature code removed from the free build; security hardening throughout.<\/p>","1.0.4":"<p>WordPress.org compliance: the free build ships only the free feature set, and the public graph never exposes unpublished content.<\/p>","1.0.1":"<p>Security, multilingual and editor fixes.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3688205,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3688205,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3688205,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3688205,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"dcgraph\/dashboard":{"name":"dcgraph\/dashboard","title":"Hub Dashboard"},"dcgraph\/article":{"name":"dcgraph\/article","title":"Hub Entries"}},"tagged_versions":["1.0.8","1.0.9","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3688459,"resolution":"1","location":"assets","locale":"","width":1280,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3688459,"resolution":"2","location":"assets","locale":"","width":1280,"height":1050},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3688459,"resolution":"3","location":"assets","locale":"","width":616,"height":638},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3688459,"resolution":"4","location":"assets","locale":"","width":1280,"height":900}},"screenshots":{"1":"The Hub Dashboard: global search, category navigator, the interactive D3 concept graph, and Latest\/Featured article feeds.","2":"A single entry with its article widgets \u2014 breadcrumbs, table of contents, related entries and a floating concept graph.","3":"The interactive knowledge graph: labelled nodes, relationship links, Reset View and zoom controls.","4":"The admin settings: assign the Dashboard page and run maintenance."}},"plugin_section":[],"plugin_tags":[2509,148076,14090,10601,103],"plugin_category":[48],"plugin_contributors":[279922],"plugin_business_model":[],"class_list":["post-328323","plugin","type-plugin","status-publish","hentry","plugin_tags-graph","plugin_tags-gutenberg","plugin_tags-knowledge-base","plugin_tags-polylang","plugin_tags-wpml","plugin_category-language-tools","plugin_contributors-decompacademy","plugin_committers-decompacademy"],"banners":{"banner":"https:\/\/ps.w.org\/decomp-concept-graph\/assets\/banner-772x250.png?rev=3688205","banner_2x":"https:\/\/ps.w.org\/decomp-concept-graph\/assets\/banner-1544x500.png?rev=3688205","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/decomp-concept-graph\/assets\/icon-128x128.png?rev=3688205","icon_2x":"https:\/\/ps.w.org\/decomp-concept-graph\/assets\/icon-256x256.png?rev=3688205","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/decomp-concept-graph\/assets\/screenshot-1.png?rev=3688459","caption":"The Hub Dashboard: global search, category navigator, the interactive D3 concept graph, and Latest\/Featured article feeds."},{"src":"https:\/\/ps.w.org\/decomp-concept-graph\/assets\/screenshot-2.png?rev=3688459","caption":"A single entry with its article widgets \u2014 breadcrumbs, table of contents, related entries and a floating concept graph."},{"src":"https:\/\/ps.w.org\/decomp-concept-graph\/assets\/screenshot-3.png?rev=3688459","caption":"The interactive knowledge graph: labelled nodes, relationship links, Reset View and zoom controls."},{"src":"https:\/\/ps.w.org\/decomp-concept-graph\/assets\/screenshot-4.png?rev=3688459","caption":"The admin settings: assign the Dashboard page and run maintenance."}],"raw_content":"<!--section=description-->\n<p>Decomp Concept Graph builds an interactive, graph-based knowledge portal from your WordPress content:<\/p>\n\n<ul>\n<li>A dedicated \"Hub Entries\" content type with hierarchical categories, proficiency levels and bidirectional relationships.<\/li>\n<li>A D3.js graph viewer with global search, a category menu and article feeds (Latest and Featured).<\/li>\n<li>Article widgets: breadcrumbs, table of contents, related articles and a floating graph window centered on the current node.<\/li>\n<li>Multilingual: automatic integration with Polylang and WPML (the graph and texts follow the active language); monolingual when neither is active.<\/li>\n<li>Tabbed admin panel (Welcome, Dashboard, Metrics, Export &amp; Examples, Support) with one-click sample data and Markdown export.<\/li>\n<\/ul>\n\n<h4>Gutenberg blocks<\/h4>\n\n<ul>\n<li>Hub Dashboard \u2014 the full portal: search, category menu, the interactive graph and the Latest\/Featured feeds.<\/li>\n<li>Hub Entries \u2014 the per-entry widgets: breadcrumbs, table of contents, related entries and a focused graph.<\/li>\n<\/ul>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li>[dcgraph_portal_dashboard] - full Dashboard.<\/li>\n<li>[dcgraph_article_widgets] - article widgets.<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin integrates the Freemius SDK (a third-party plugin licensing and analytics service) to provide optional, opt-in usage diagnostics, to manage your account and license for the separate premium add-on, and to display its pricing\/checkout when you choose to open it. The plugin is fully functional without contacting this service; no personal data is sent unless you opt in or actively use the account\/checkout flows.<\/p>\n\n<ul>\n<li>Service: Freemius (https:\/\/freemius.com).<\/li>\n<li>Endpoints contacted: api.freemius.com, wp.freemius.com and checkout.freemius.com.<\/li>\n<li>When it is contacted: (a) only if you grant opt-in consent, for anonymous environment diagnostics; (b) when you connect an account or activate\/validate a license for the premium add-on; (c) when you open the pricing or checkout screen.<\/li>\n<li>Data sent in those cases: your site URL and domain, the plugin and WordPress\/PHP versions, and - only if you opt in or sign in - your administrator email and basic environment details; plus the license key when you activate a license.<\/li>\n<li>Terms of Use: https:\/\/freemius.com\/terms\/  -  Privacy Policy: https:\/\/freemius.com\/privacy\/<\/li>\n<\/ul>\n\n<p>The D3.js library (BSD-3-Clause, GPL-compatible) is bundled locally; it is not loaded from any external CDN.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>decomp-concept-graph<\/code> folder to <code>\/wp-content\/plugins\/<\/code> (or install the ZIP from Plugins &gt; Add New).<\/li>\n<li>Activate the plugin from the Plugins menu.<\/li>\n<li>(Optional) Go to Decomp Concept Graph &gt; Settings &gt; Export &amp; Examples and click \"Fill with sample data\".<\/li>\n<li>In Decomp Concept Graph &gt; Settings &gt; Dashboard, create or assign the Dashboard page.<\/li>\n<li>Insert the \"Hub Dashboard\" block (or the [dcgraph_portal_dashboard] shortcode) on that page, and the \"Hub Entries\" block in your posts.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20polylang%20or%20wpml%3F\"><h3>Do I need Polylang or WPML?<\/h3><\/dt>\n<dd><p>They are optional. With Polylang or WPML installed, multilingual support is automatic - the graph and texts follow the active language; without them the plugin runs in monolingual mode. Do not use both at the same time.<\/p><\/dd>\n<dt id=\"how%20do%20i%20connect%20two%20entries%3F\"><h3>How do I connect two entries?<\/h3><\/dt>\n<dd><p>In an entry's editor, check the related entries in the relationships metabox; the link is created bidirectionally.<\/p><\/dd>\n<dt id=\"does%20it%20load%20d3.js%20from%20a%20cdn%3F\"><h3>Does it load D3.js from a CDN?<\/h3><\/dt>\n<dd><p>No. D3.js (BSD-3-Clause, GPL-compatible) is bundled locally - both the minified runtime (assets\/js\/d3.v7.min.js) and the full, unminified source (assets\/js\/d3.v7.js) ship inside the plugin. Nothing is loaded from a CDN. The library's home is https:\/\/github.com\/d3\/d3.<\/p><\/dd>\n<dt id=\"is%20there%20a%20paid%20version%3F\"><h3>Is there a paid version?<\/h3><\/dt>\n<dd><p>A separate, optional premium add-on with extra features is available from the author at https:\/\/decomp.finance\/en\/decomp-concept-graph\/. It is not required - this plugin is fully functional on its own.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Mobile: on touch devices the floating concept-graph window is no longer a fixed bar over the article. It now sits in the page, collapsed to its header, and expands in place. On a phone it was covering up to 79% of the screen width with no way to move or dismiss it.<\/li>\n<li>Spanish translation completed: the admin screens and the front-end strings (search, breadcrumbs, empty states) are fully translated. Nine front-end strings had never been translated at all.<\/li>\n<li>The \"Sync \/ Examples\" settings tab is now \"Export &amp; Examples\" - nothing on it performed a sync. Existing links to the tab keep working.<\/li>\n<li>Fix: uninstalling the plugin now also removes the category-order option WordPress creates for the entry categories.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fix: the \"Upgrade\" (Plans and Pricing) screen rendered blank. The bundled Freemius SDK is updated from 2.13.2 to 2.13.4, whose pricing app correctly selects the product's currency.<\/li>\n<li>Tested up to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Maintenance: version alignment with the premium add-on. No functional change to the free plugin.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Security: integer request parameters now use absint() for clearer, tool-recognized sanitization.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Packaging: the full unminified D3.js source now ships alongside the minified runtime, and development-only files are excluded from the distributed package.<\/li>\n<li>Security: additional unslashing\/sanitization hardening on admin form inputs.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>WordPress.org compliance: the free build now contains no premium or locked-feature code. Multiple Hubs, My Vault, the individual blocks (Search\/Selector\/Graph\/Viewer), Markdown import and the custom color\/styling controls are no longer part of the free package - they ship only in a separate premium build (the free build keeps a fixed default look). The free plugin is a fully-functional single knowledge base.<\/li>\n<li>Security: hardened input sanitization, validation and escaping across the plugin (relationship saving, search, ZIP\/export handling, settings inputs).<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>WordPress.org compliance: the free build contains only the free feature set; feature availability is decided solely by code presence (no license-based gating).<\/li>\n<li>The free admin Help\/Support tab documents only the features included in the free build.<\/li>\n<li>Security: the public graph endpoint and the embedded front-end graph data only ever include published content. Translated entries and linked relationships are verified as published before they are exposed, so no draft or private content can leak.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: entry titles and descriptions are sanitized before they are drawn in the graph, cards and search; the Viewer card template is escaped.<\/li>\n<li>Multilingual: graph relationships now sync correctly when an entry is edited in a secondary language; the dashboard respects the active site language.<\/li>\n<li>Fixes: a duplicate category box in the editor, \"nodes without links\" detection, and a script clash when a Dashboard and an Article block share the same page.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: entries CPT, category and level taxonomies, bidirectional relationships, local D3 graph, multilingual (Polylang\/WPML), Hub Dashboard and Hub Entries blocks, shortcodes, tabbed admin panel and Markdown export.<\/li>\n<\/ul>","raw_excerpt":"Turn your posts into an interactive D3.js concept graph with categories, levels and relationships. Compatible with Polylang and WPML.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=328323"}],"author":[{"embeddable":true,"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/decompacademy"}],"wp:attachment":[{"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328323"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328323"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328323"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328323"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328323"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/li.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}