{"id":274844,"date":"2026-03-03T02:29:48","date_gmt":"2026-03-03T02:29:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/functionalities\/"},"modified":"2026-04-05T09:10:31","modified_gmt":"2026-04-05T09:10:31","slug":"functionalities","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/functionalities\/","author":13255989,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.5","stable_tag":"1.4.5","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Dynamic Functionalities","header_author":"Gaurav Tiwari","header_description":"Modular site-specific plugin with modern dashboard and features.","assets_banners_color":"e1eaf4","last_updated":"2026-04-05 09:10:31","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/gauravtiwari.org\/donate\/","header_plugin_uri":"https:\/\/functionalities.dev","header_author_uri":"https:\/\/gauravtiwari.org","rating":0,"author_block_rating":0,"active_installs":0,"downloads":541,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"gauravtiwari","date":"2026-03-03 02:34:22"},"1.2.0":{"tag":"1.2.0","author":"gauravtiwari","date":"2026-03-08 15:54:42"},"1.3.0":{"tag":"1.3.0","author":"gauravtiwari","date":"2026-03-13 03:13:16"},"1.3.1":{"tag":"1.3.1","author":"gauravtiwari","date":"2026-03-21 07:50:51"},"1.4.0":{"tag":"1.4.0","author":"gauravtiwari","date":"2026-03-27 16:59:08"},"1.4.1":{"tag":"1.4.1","author":"gauravtiwari","date":"2026-03-28 16:37:43"},"1.4.2":{"tag":"1.4.2","author":"gauravtiwari","date":"2026-03-31 13:22:21"},"1.4.3":{"tag":"1.4.3","author":"gauravtiwari","date":"2026-04-01 13:45:57"},"1.4.4":{"tag":"1.4.4","author":"gauravtiwari","date":"2026-04-01 13:58:52"},"1.4.5":{"tag":"1.4.5","author":"gauravtiwari","date":"2026-04-05 09:10:31"},"v1.1.0":{"tag":"v1.1.0","author":"gauravtiwari","date":"2026-03-03 02:29:30"}},"upgrade_notice":{"1.4.5":"<p>Enables WOFF\/WOFF2 font uploads in the media library with magic-byte validation for security.<\/p>","1.4.4":"<p>Extends Vue\/Alpine.js protection to Schema and Block Cleanup modules. All DOMDocument-based content filters now skip JS framework content.<\/p>","1.4.3":"<p>Fixes Link Management breaking pages that use Vue.js (MyListing explore page, etc.). DOMDocument no longer corrupts Vue\/React template directives.<\/p>","1.4.2":"<p>Fixes <code>data-*<\/code> and other attributes being stripped from script\/style\/link tags in Header &amp; Footer snippets for non-admin users.<\/p>","1.4.1":"<p>Code quality and plugin review compliance: WP_Filesystem for all file writes, comprehensive uninstall cleanup (opt-in), shared CSS sanitization trait, and minor fixes.<\/p>","1.4.0":"<p>Bricks Builder font support. Task Manager redesign: cleaner card-based UI, external CSS, improved modals, hover actions on tasks, and polished column view.<\/p>","1.3.3":"<p>Snippets UI polish: collapsible cards with type badges, smoother interactions, and bug fixes.<\/p>","1.3.2":"<p>Header &amp; Footer snippets now support multiple code blocks per location with individual toggles. Fixes CSS output for non-admin users. Removes legacy GT Nofollow Manager compatibility.<\/p>","1.3.1":"<p>Link Management now works with ACF fields and custom templates via process_content() helper. Redirect Manager fixes query string matching and adds loop detection.<\/p>","1.3.0":"<p>WordPress 7 compatibility: editor CSS now loads inside the iframed block editor. Fixes version tag stripping in admin.<\/p>","1.2.0":"<p>All modules now require explicit activation. After updating, visit Functionalities settings and enable the modules you use.<\/p>","1.1.0":"<p>All features are now free and open source. 16 modules for performance, security, SEO, and content management.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3473202,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3473202,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3473202,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3473202,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3473202,"resolution":"772x250","location":"assets","locale":""},"banner.svg":{"filename":"banner.svg","revision":3473202,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":{"functionalities\/svg-icon-block":{"name":"functionalities\/svg-icon-block","title":"Svg Icon Block"}},"tagged_versions":["1.1.1","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","v1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3473202,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3473202,"resolution":"2","location":"assets","locale":""},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3473202,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Dashboard overview with module cards","2":"Content Integrity module","3":"Assumption Detection module"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3786,247,925,600,186],"plugin_category":[54,55],"plugin_contributors":[90890],"plugin_business_model":[],"class_list":["post-274844","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-performance","plugin_tags-redirection","plugin_tags-security","plugin_tags-seo","plugin_category-security-and-spam-protection","plugin_category-seo-and-marketing","plugin_contributors-gauravtiwari","plugin_committers-gauravtiwari"],"banners":{"banner":"https:\/\/ps.w.org\/functionalities\/assets\/banner-772x250.png?rev=3473202","banner_2x":"https:\/\/ps.w.org\/functionalities\/assets\/banner-1544x500.png?rev=3473202","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/functionalities\/assets\/icon.svg?rev=3473202","icon":"https:\/\/ps.w.org\/functionalities\/assets\/icon.svg?rev=3473202","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/functionalities\/assets\/screenshot-1.png?rev=3473202","caption":"Dashboard overview with module cards"},{"src":"https:\/\/ps.w.org\/functionalities\/assets\/screenshot-2.jpg?rev=3473202","caption":"Content Integrity module"},{"src":"https:\/\/ps.w.org\/functionalities\/assets\/screenshot-3.jpg?rev=3473202","caption":"Assumption Detection module"}],"raw_content":"<!--section=description-->\n<h3>Replace your plugin stack with one lightweight toolkit<\/h3>\n\n<p>Dynamic Functionalities replaces the stack of single-purpose plugins most WordPress sites depend on. Instead of installing separate plugins for performance cleanup, redirect management, login security, schema markup, external link control, and code snippets, you get 16 purpose-built modules in one package that loads less code than most individual plugins.<\/p>\n\n<p>Every module is independent. Enable what you need, disable what you don't. Disabled modules load zero code.<\/p>\n\n<h4>Why Not Just Use Separate Plugins?<\/h4>\n\n<p>A typical WordPress site runs 5-10 utility plugins that each load their own CSS, JS, options, and database queries on every page load. Dynamic Functionalities consolidates these into a single plugin with shared infrastructure:<\/p>\n\n<ul>\n<li><strong>One autoloader<\/strong> instead of 16 separate plugin bootstraps<\/li>\n<li><strong>Shared options caching<\/strong> across all modules (static properties, not repeated DB calls)<\/li>\n<li><strong>Zero frontend assets<\/strong> unless a module explicitly requires them<\/li>\n<li><strong>Single admin menu<\/strong> instead of scattered settings pages<\/li>\n<\/ul>\n\n<h4>What It Replaces<\/h4>\n\n<p>Here's what you can deactivate after installing Dynamic Functionalities:<\/p>\n\n<ul>\n<li><strong>Redirection \/ Safe Redirect Manager \/ 301 Redirects<\/strong> \u2014 The Redirect Manager module handles 301, 302, 307, and 308 redirects with file-based storage (no database bloat)<\/li>\n<li><strong>Limit Login Attempts Reloaded \/ WP Limit Login \/ Login LockDown<\/strong> \u2014 Login Security module covers login attempt limiting, lockout durations, XML-RPC blocking, and login error hiding<\/li>\n<li><strong>External Links \/ WP External Links<\/strong> \u2014 Link Management module automates nofollow, new tab behavior, and exception lists with JSON preset support<\/li>\n<li><strong>Schema Pro \/ Schema &amp; Structured Data<\/strong> \u2014 Schema Settings module adds microdata with itemscope\/itemtype support and BreadcrumbList JSON-LD<\/li>\n<li><strong>Insert Headers and Footers \/ WPCode<\/strong> \u2014 Header &amp; Footer Snippets module handles GA4 integration and custom code injection<\/li>\n<li><strong>Asset CleanUp \/ Perfmatters<\/strong> \u2014 Performance &amp; Cleanup module disables emojis, embeds, REST API links, XML-RPC, feeds, Gravatars, heartbeat, and more<\/li>\n<li><strong>SVG Support \/ Safe SVG<\/strong> \u2014 SVG Icons module lets you upload and insert SVG icons inline in the block editor<\/li>\n<li><strong>Use Any Font \/ Custom Fonts<\/strong> \u2014 Fonts module registers custom font families with @font-face, WOFF2\/WOFF, variable font support, and Bricks Builder integration<\/li>\n<li><strong>PWA for WP \/ Super Progressive Web Apps<\/strong> \u2014 Progressive Web App module makes your site installable with service worker support<\/li>\n<\/ul>\n\n<h4>Modules That Don't Have Alternatives<\/h4>\n\n<p>Some modules solve problems no other free plugin addresses:<\/p>\n\n<ul>\n<li><strong>Content Integrity<\/strong> \u2014 Monitors posts for structural regressions on update: dropped internal links, word count drops, heading structure changes. Catches accidental content loss before it goes live.<\/li>\n<li><strong>Assumption Detection<\/strong> \u2014 Watches for technical assumptions that silently break: schema collisions from conflicting plugins, duplicate analytics tags, redundant font loading, missing expected elements.<\/li>\n<li><strong>Components<\/strong> \u2014 Define reusable CSS components as selector + rules pairs. Auto-enqueued site-wide without a page builder or theme dependency.<\/li>\n<li><strong>Task Manager<\/strong> \u2014 File-based project management inside WordPress admin. No external service, no database tables, no SaaS subscription.<\/li>\n<li><strong>Block Cleanup<\/strong> \u2014 Strips wp-block classes from frontend HTML for sites that don't need them. Cleaner markup, smaller DOM.<\/li>\n<li><strong>Editor Link Suggestions<\/strong> \u2014 Limits the block editor link autocomplete to specific post types. Stops irrelevant suggestions from cluttering the link picker.<\/li>\n<\/ul>\n\n<h4>Performance First<\/h4>\n\n<ul>\n<li><strong>Modular &amp; lazy loaded<\/strong> \u2014 Only active modules run code<\/li>\n<li><strong>Static property caching<\/strong> \u2014 Options are read once per request, not on every hook<\/li>\n<li><strong>Fast-exit content filters<\/strong> \u2014 strpos() checks before any regex or DOM parsing<\/li>\n<li><strong>Transient caching<\/strong> \u2014 Heavy operations (JSON parsing, file I\/O) are cached<\/li>\n<li><strong>No frontend bloat<\/strong> \u2014 No CSS or JS loaded unless a module explicitly needs it<\/li>\n<\/ul>\n\n<h4>Developer Friendly<\/h4>\n\n<ul>\n<li>Clean namespaced codebase: <code>Functionalities\\Features\\*<\/code>, <code>Functionalities\\Admin\\*<\/code><\/li>\n<li>All hooks prefixed with <code>functionalities_<\/code> for safe filtering<\/li>\n<li>Every module exposes filters for customization<\/li>\n<li>PSR-4-like autoloader with zero dependencies<\/li>\n<li>GPL-2.0-or-later \u2014 fork it, extend it, contribute back<\/li>\n<\/ul>\n\n<h4>Documentation &amp; Support<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/gauravtiwari.org\/course\/functionalities-training\/\">Training<\/a> \u2014 Step-by-step module walkthroughs<\/li>\n<li><a href=\"https:\/\/github.com\/wpgaurav\/functionalities\/issues\">GitHub Issues<\/a> \u2014 Bug reports and feature requests<\/li>\n<li><a href=\"https:\/\/wordpress.org\/support\/plugin\/functionalities\/\">WordPress.org Support<\/a> \u2014 Community support forum<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>functionalities<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate through <strong>Plugins &gt; Installed Plugins<\/strong><\/li>\n<li>Go to <strong>Functionalities<\/strong> in the admin sidebar<\/li>\n<li>Enable the modules you need from the dashboard<\/li>\n<\/ol>\n\n<p>Each module card shows what it does. Click <strong>Configure<\/strong> to access its settings. Modules you don't enable load no code at all.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20slow%20down%20my%20site%3F\"><h3>Does this plugin slow down my site?<\/h3><\/dt>\n<dd><p>No. Dynamic Functionalities uses lazy-loading, static caching, and fast-exit checks across all modules. Most modules add zero frontend assets. The entire plugin loads less code than many single-purpose alternatives.<\/p><\/dd>\n<dt id=\"can%20i%20use%20only%20specific%20modules%3F\"><h3>Can I use only specific modules?<\/h3><\/dt>\n<dd><p>Yes. Every module is independent. Enable only what you need. Disabled modules don't register any hooks, load any files, or run any code.<\/p><\/dd>\n<dt id=\"will%20this%20conflict%20with%20my%20existing%20plugins%3F\"><h3>Will this conflict with my existing plugins?<\/h3><\/dt>\n<dd><p>Most modules work alongside other plugins. If you already have a redirect plugin or login limiter, disable that module in Dynamic Functionalities to avoid overlap. The Assumption Detection module actually helps you find these conflicts.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. Tested with WP Super Cache, W3 Total Cache, LiteSpeed Cache, and FlyingPress. No special configuration needed.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%20and%20block%20themes%3F\"><h3>Does it work with page builders and block themes?<\/h3><\/dt>\n<dd><p>Yes. All modules work with classic themes, block themes, Elementor, Bricks Builder, GenerateBlocks, and other page builders. The Fonts module has native Bricks Builder integration \u2014 custom fonts appear in the Bricks typography picker and load inside the builder canvas.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20rank%20math%2C%20yoast%2C%20or%20other%20seo%20plugins%3F\"><h3>Is the plugin compatible with Rank Math, Yoast, or other SEO plugins?<\/h3><\/dt>\n<dd><p>Yes. The Meta &amp; Copyright module detects active SEO plugins and adjusts its behavior to avoid duplicate meta tags. Schema Settings works alongside SEO plugin schemas without conflicts.<\/p><\/dd>\n<dt id=\"how%20are%20redirects%20stored%3F\"><h3>How are redirects stored?<\/h3><\/dt>\n<dd><p>File-based JSON storage, not database tables. This means redirects load faster and don't bloat your wp_options or create custom tables that survive uninstallation.<\/p><\/dd>\n<dt id=\"can%20i%20migrate%20redirects%20from%20another%20plugin%3F\"><h3>Can I migrate redirects from another plugin?<\/h3><\/dt>\n<dd><p>The Redirect Manager supports manual entry of 301, 302, 307, and 308 redirects. For bulk migration, export your existing redirects as CSV and add them through the interface.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20deactivate%20the%20plugin%3F\"><h3>What happens if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>All settings are preserved in the database. Reactivate anytime and everything is restored.<\/p><\/dd>\n<dt id=\"how%20do%20i%20completely%20remove%20all%20plugin%20data%3F\"><h3>How do I completely remove all plugin data?<\/h3><\/dt>\n<dd><p>Before uninstalling, go to the Functionalities dashboard and check <strong>\"Delete all plugin data when uninstalling\"<\/strong> under Data Management. This removes all options, post metadata, transients, and files created by the plugin. Without this checkbox, only the generated CSS file is removed \u2014 your settings are preserved in case you reinstall.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.5<\/h4>\n\n<ul>\n<li>Added: WOFF and WOFF2 font file uploads now supported in the WordPress media library<\/li>\n<li>Security: Font uploads validated via binary magic-byte signatures to prevent malicious file uploads<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Fixed: Schema module <code>filter_article()<\/code> now skips content with Vue\/Alpine.js directives \u2014 prevents DOMDocument from corrupting JS framework templates<\/li>\n<li>Fixed: Block Cleanup module <code>filter_content_cleanup()<\/code> now skips content with JS framework directives<\/li>\n<li>Refactored: Extracted Vue-safe DOMDocument guard into shared <code>Has_Dom_Parser<\/code> trait used by Link Management, Schema, and Block Cleanup<\/li>\n<li>All three <code>the_content<\/code> filters that use DOMDocument (priorities 12, 14, 999) are now protected against JS framework corruption<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Fixed: Link Management <code>process_content()<\/code> now skips HTML containing Vue.js directives (<code>v-cloak<\/code>, <code>v-if<\/code>, <code>v-show<\/code>, <code>:class<\/code>, <code>@click<\/code>, <code>{{ }}<\/code>)<\/li>\n<li>Fixed: DOMDocument re-parsing was corrupting Vue\/React template syntax in themes like MyListing, causing explore pages to flash and disappear<\/li>\n<li>Improved: Early-exit check prevents unnecessary DOM parsing on content with JavaScript framework directives<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Fixed: <code>wp_kses<\/code> now preserves <code>data-*<\/code> attributes on <code>&lt;script&gt;<\/code>, <code>&lt;style&gt;<\/code>, and <code>&lt;link&gt;<\/code> tags in Header &amp; Footer snippets<\/li>\n<li>Fixed: <code>async<\/code>, <code>defer<\/code>, <code>nomodule<\/code>, <code>id<\/code>, <code>nonce<\/code>, <code>crossorigin<\/code>, and <code>as<\/code> attributes no longer stripped from snippet tags for non-admin users<\/li>\n<li>Fixed: Unified allowed-tags list between snippet output and save sanitization to prevent attribute drift<\/li>\n<li>Fixed: README.md version was outdated (still showed 1.4.0)<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Added: Opt-in \"Delete all plugin data when uninstalling\" checkbox on the dashboard \u2014 removes all options, post metadata, transients, and files on uninstall<\/li>\n<li>Fixed: Replaced all direct file_put_contents calls with WP_Filesystem API across Task Manager, Redirect Manager, and JSON file creation<\/li>\n<li>Fixed: Extracted duplicate CSS sanitization into a shared trait used by Components and Fonts modules<\/li>\n<li>Fixed: Removed sslverify =&gt; false from loopback HTTP requests in Assumption Detection<\/li>\n<li>Fixed: Disabled debug console logging in SVG Icons editor script<\/li>\n<li>Fixed: Removed dead code in admin UI script<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added: Bricks Builder font integration \u2014 custom fonts appear in Bricks typography picker and load inside the builder canvas<\/li>\n<li>Added: PWA module prefills app name, short name, description, and icons from WordPress Settings and Site Icon<\/li>\n<li>Improved: Task Manager UI redesign \u2014 external CSS, card-based project grid, improved modals, hover task actions, polished column view<\/li>\n<li>Improved: Task Manager consistent spacing across all sections<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Improved: Snippets UI \u2014 collapsible cards, type badges (CSS\/JS\/Meta), inline label editing, icon buttons<\/li>\n<li>Fixed: Template index replacement no longer corrupts textarea attributes<\/li>\n<li>Fixed: kses_with_styles handles empty style tags and regex failures gracefully<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Added: Snippets repeater \u2014 multiple independently-toggleable code snippets per location (header, body open, footer)<\/li>\n<li>Fixed: CSS inside <code>&lt;style&gt;<\/code> tags no longer stripped by <code>wp_kses()<\/code> for non-admin users<\/li>\n<li>Removed: Legacy GT Nofollow Manager references and <code>gtnf_*<\/code> filter hooks from Link Management<\/li>\n<li>Improved: Auto-migration from single-string snippet format to repeater arrays<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Added: Public <code>Link_Management::process_content()<\/code> helper for applying nofollow\/new-tab rules to ACF fields, shortcode output, and custom templates<\/li>\n<li>Fixed: Redirect Manager now strips query strings before matching, so <code>\/old-page?utm=x<\/code> correctly matches <code>\/old-page<\/code><\/li>\n<li>Improved: Redirect Manager passes original query string through to destination URL<\/li>\n<li>Improved: Redirect Manager uses O(1) indexed lookup for exact matches instead of linear scan<\/li>\n<li>Improved: Redirect Manager defers hit counter writes to shutdown for faster redirects<\/li>\n<li>Added: Redirect loop detection at both creation time and runtime<\/li>\n<li>Fixed: Removed filler text from readme plugin alternatives list<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added: WordPress 7 editor iframe compatibility for Fonts, SVG Icons, Content Regression, and Components modules<\/li>\n<li>Added: <code>enqueue_block_assets<\/code> handlers so editor CSS loads inside the WP 7 iframed block editor<\/li>\n<li>Fixed: Query string stripping (<code>remove_query_strings<\/code>) no longer strips version tags from admin\/editor assets<\/li>\n<li>Tested up to WordPress 7.0<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Changed: All 16 modules now require explicit activation \u2014 no module runs code until enabled<\/li>\n<li>Added: Enable\/disable toggle to every module settings page<\/li>\n<li>Added: Toggle forms for Task Manager, Redirect Manager, and SVG Icons custom pages<\/li>\n<li>Fixed: Redirect Manager and Task Manager file paths now set before enabled gate to prevent empty-path errors in admin<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed: PHPCS escaping compliance for all output variables<\/li>\n<li>Fixed: WordPress.org SVN tag version mismatch<\/li>\n<li>Fixed: Short description truncation (now under 150 chars)<\/li>\n<li>Fixed: Excluded landing-page.html and LICENSE from distribution<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed to Dynamic Functionalities for WordPress.org<\/li>\n<li>Removed: FluentCart licensing module<\/li>\n<li>Removed: Premium barriers from all modules<\/li>\n<li>All features are now free and open source<\/li>\n<li>Added: WordPress.org plugin deploy workflow<\/li>\n<li>Added: Progressive Web App module<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with 15+ modules<\/li>\n<li>Updated: Modern dashboard UI with improved module cards<\/li>\n<\/ul>\n\n<h4>0.15.5<\/h4>\n\n<ul>\n<li>Fixed: PHPCS compliance - added proper escaping, wp_unslash(), nonce verification comments, and translators comments across all modules<\/li>\n<li>Removed: GitHub Updates module (not permitted on WordPress.org)<\/li>\n<li>Added: readme.txt for WordPress.org submission<\/li>\n<\/ul>\n\n<h4>0.15.4<\/h4>\n\n<ul>\n<li>Fixed: PHPCS compliance improvements<\/li>\n<\/ul>\n\n<h4>0.15.3<\/h4>\n\n<ul>\n<li>Removed: Transient cache from Link Management JSON preset loader for realtime exception updates<\/li>\n<\/ul>\n\n<h4>0.15.2<\/h4>\n\n<ul>\n<li>Removed: The Debugger module, as it is no longer necessary following the transition to a more stable shortcode-based icon system<\/li>\n<\/ul>\n\n<h4>0.15.1<\/h4>\n\n<ul>\n<li>Fixed: Removed automatic conversion of icon tags to shortcodes on save<\/li>\n<\/ul>\n\n<h4>0.15.0<\/h4>\n\n<ul>\n<li>Changed: SVG Icons now use the [func_icon name=\"slug\"] shortcode workaround for better stability<\/li>\n<li>Improved: Updated block editor to insert shortcodes directly into content<\/li>\n<li>Fixed: Render logic now gracefully handles unclosed icon tags on the frontend<\/li>\n<\/ul>\n\n<h4>0.14.0<\/h4>\n\n<ul>\n<li>Fonts Module UI Overhaul: Completely rebuilt with modern card-based design<\/li>\n<li>Dynamic add\/remove functionality for unlimited custom fonts<\/li>\n<li>WordPress Media Uploader integration for font uploads<\/li>\n<\/ul>\n\n<h4>0.13.0<\/h4>\n\n<ul>\n<li>Added new features to Performance &amp; Cleanup module<\/li>\n<li>Added wp_body_open support to Snippets module<\/li>\n<li>Added BreadcrumbList JSON-LD support to Schema module<\/li>\n<li>Added font preloading option to Fonts module<\/li>\n<\/ul>\n\n<h4>0.12.0<\/h4>\n\n<ul>\n<li>Performance: Implemented custom autoloader for lazy-loading<\/li>\n<li>Performance: Added static property caching for options<\/li>\n<li>Performance: Optimized Schema module with regex instead of DOMDocument<\/li>\n<li>Performance: Added strpos fast-exit checks to all content filters<\/li>\n<\/ul>\n\n<h4>0.11.0<\/h4>\n\n<ul>\n<li>Added: SVG Icons module with block and inline support<\/li>\n<\/ul>\n\n<h4>0.10.0<\/h4>\n\n<ul>\n<li>Added: Redirect Manager module<\/li>\n<li>Added: Login Security module<\/li>\n<\/ul>\n\n<h4>0.9.9<\/h4>\n\n<ul>\n<li>Added: Task Manager module<\/li>\n<\/ul>\n\n<h4>0.9.0<\/h4>\n\n<ul>\n<li>Added: Content Regression Detection module<\/li>\n<li>Added: Assumption Detection module<\/li>\n<\/ul>","raw_excerpt":"Replace 5+ plugins with one lightweight toolkit. 16 modules for performance, security, SEO, redirects, and content management.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/274844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=274844"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gauravtiwari"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=274844"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=274844"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=274844"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=274844"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=274844"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=274844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}