Skip to content

wpgaurav/functionalities

Repository files navigation

Dynamic Functionalities

All-in-one WordPress optimization toolkit with 15+ modules for performance, security, SEO, and content management. Built with modern WordPress coding standards and a clean module-based dashboard. Optimized for performance with lazy-loading, static property caching, and intelligent transients.

Version: 1.4.4 License: GPL-2.0-or-later Text Domain: functionalities Pricing: Free

Installation

  1. Download: Get the latest production-ready ZIP file from GitHub Releases.
  2. Upload: In your WordPress admin, go to Plugins > Add New > Upload Plugin and select the downloaded file.
  3. Activate: Activate the plugin through the Plugins menu in WordPress.
  4. Setup: Navigate to the new Functionalities menu item to enable and configure your modules.

Alternatively, you can manually copy the functionalities/ folder into wp-content/plugins/.

All modules are accessed through a unified dashboard at wp-admin/admin.php?page=functionalities. Click any module card to configure its settings.

Learn more on Functionalities Site

Performance & Footprint

This plugin is built with a "Performance First" philosophy. Unlike many all-in-one plugins that slow down your site, Functionalities is designed to be as lightweight as possible:

  • Modular & Lazy Loaded: Using a custom autoloader, the plugin only loads the code required for active modules. If a feature is disabled, its code is never even included in memory.
  • Minimized Database Load: All module settings are cached in static properties. This ensures that get_option() is called at most once per module per request, regardless of how many times a feature is accessed.
  • Zero Frontend Bloat: Most modules are "Zero Footprint" on the frontend, meaning they load no CSS or JS unless explicitly required (like the Components or Fonts modules).
  • Intelligent Filtering: Content filters (the_content, etc.) use strpos() fast-exit checks. If the specific markers or tags for a feature aren't present in your content, the plugin exits immediately without running expensive regular expressions or DOM parsing.
  • Efficient HTML Processing: We use targeted regex for lightweight tasks (like Schema injection) and only resort to DOMDocument when structural manipulation is strictly necessary, ensuring maximum speed.
  • Aggressive Caching: Heavy operations—such as reading JSON exception lists, calculating file hashes, or managing redirects—are cached using WordPress Transients or versioned options to minimize Disk I/O.

Performance & Footprint

This plugin is built with a "Performance First" philosophy. Unlike many all-in-one plugins that slow down your site, Functionalities is designed to be as lightweight as possible:

  • Modular & Lazy Loaded: Using a custom autoloader, the plugin only loads the code required for active modules. If a feature is disabled, its code is never even included in memory.
  • Minimized Database Load: All module settings are cached in static properties. This ensures that get_option() is called at most once per module per request, regardless of how many times a feature is accessed.
  • Zero Frontend Bloat: Most modules are "Zero Footprint" on the frontend, meaning they load no CSS or JS unless explicitly required (like the Components or Fonts modules).
  • Intelligent Filtering: Content filters (the_content, etc.) use strpos() fast-exit checks. If the specific markers or tags for a feature aren't present in your content, the plugin exits immediately without running expensive regular expressions or DOM parsing.
  • Efficient HTML Processing: We use targeted regex for lightweight tasks (like Schema injection) and only resort to DOMDocument when structural manipulation is strictly necessary, ensuring maximum speed.
  • Aggressive Caching: Heavy operations—such as reading JSON exception lists, calculating file hashes, or managing redirects—are cached using WordPress Transients or versioned options to minimize Disk I/O.

Modules

Link Management

Complete external link control with nofollow automation.

Features:

  • Automatic rel="nofollow" for external links (priority 999)
  • Applies to content, widgets, and comments
  • Exception lists: full URLs, domains, or partial matches
  • JSON preset file support for bulk exceptions
  • Database update tool for bulk nofollow addition
  • Open external/internal links in new tab
  • Pattern-based domain matching
  • Zero frontend footprint (no CSS/JS)

Navigate to: ?page=functionalities&module=link-management


Block Cleanup

Strip common wp-block classes from frontend output (.wp-block-heading, .wp-block-list, .wp-block-image). Cleaner HTML markup without the bloat.

Navigate to: ?page=functionalities&module=block-cleanup


Editor Link Suggestions

Limit link suggestions to selected post types in the block editor. Reduces clutter in link search dialogs.

Navigate to: ?page=functionalities&module=editor-links


Performance & Cleanup

Fine-grained control over WordPress default behaviors and performance tweaks:

  • Disable emojis scripts/styles
  • Disable embeds (oEmbed)
  • Remove REST API and oEmbed discovery links
  • Remove RSD, WLWManifest, shortlink tags
  • Remove WordPress version meta
  • Disable XML-RPC (complete or pingbacks only)
  • Disable RSS/Atom feeds
  • Disable Gravatars
  • Disable self-pingbacks
  • Remove query strings from static resources
  • Remove DNS prefetch
  • Remove Recent Comments inline CSS
  • Limit post revisions
  • Disable Dashicons for non-logged-in users
  • Disable Heartbeat API
  • Disable admin bar on frontend
  • Remove jQuery Migrate
  • Load core block styles separately (per-block CSS)
  • Disable block-based widget editor
  • Enable PrismJS on admin screens
  • Enable fullscreen toggle for backend textareas

Navigate to: ?page=functionalities&module=misc


Header & Footer Snippets

  • Google Analytics 4 integration (just enter Measurement ID)
  • Custom header code injection
  • Custom footer code injection
  • Safe sanitization with wp_kses for non-superadmins

Navigate to: ?page=functionalities&module=snippets


Schema Settings

Add microdata to your site's HTML:

  • itemscope/itemtype on <html> tag
  • Optional WPHeader and WPFooter microdata
  • Article microdata with customizable itemtype
  • Automatic headline, dates, and author properties

Navigate to: ?page=functionalities&module=schema


Components

Define reusable CSS components as selector + CSS rules. Auto-enqueued site-wide.

Default components include: cards, buttons, badges, chips, alerts, avatars, grids, accordions.

Navigate to: ?page=functionalities&module=components


Fonts

Register custom font families with @font-face:

  • WOFF2 and WOFF support
  • Variable fonts support
  • Font-display control (swap, auto, block, fallback, optional)
  • Typography assignments for body and headings via theme.json data layer
  • Native Bricks Builder integration — fonts appear in the Bricks typography picker

Navigate to: ?page=functionalities&module=fonts


Meta & Copyright

Copyright, Dublin Core, licensing, and SEO plugin integration.

Features:

  • Automatic copyright meta tags and Dublin Core metadata
  • Creative Commons licensing integration
  • Standalone Schema.org output for copyright/license information
  • Integration with popular SEO plugins for unified metadata

Navigate to: ?page=functionalities&module=meta


SVG Icons

Upload custom SVG icons and insert them inline in the block editor.

Features:

  • Custom SVG icon library with secure sanitization
  • Inline insertion via RichText toolbar (inherits surrounding font size)
  • Standalone SVG Icon block with alignment, size, and color controls
  • Zero frontend footprint when no icons are used

Navigate to: ?page=functionalities&module=svg-icons


Content Integrity

Detect structural regressions when posts are updated.

Internal Link Drop Detection:

  • Warns when internal links are accidentally removed
  • Configurable percentage threshold (default: 30%)
  • Configurable absolute threshold (default: 3 links)
  • Option to exclude nofollow links

Word Count Regression:

  • Alerts when content is shortened significantly
  • Configurable drop percentage (default: 35%)
  • Minimum content age requirement (default: 30 days)
  • Shortcode exclusion support

Heading Structure Analysis:

  • Missing H1 detection
  • Multiple H1 detection
  • Skipped heading level detection (e.g., H2 → H4)

Also includes: rolling snapshot storage, admin column for regression status, block editor integration with pre-publish warnings.

Navigate to: ?page=functionalities&module=content-regression


Assumption Detection

Monitor when technical assumptions stop being true. Philosophy: "This used to be true. Now it isn't."

Detects:

  • Schema collisions (multiple JSON-LD sources)
  • Analytics duplication (GA4, GTM, Facebook Pixel)
  • Font redundancy (same font from multiple sources)
  • Inline CSS growth (performance debt monitoring)

Dashboard UI with acknowledge/ignore actions for each detected issue.

Navigate to: ?page=functionalities&module=assumption-detection


Task Manager

Simple, file-based project task management for content and development workflows within WordPress admin.

Features:

  • Track tasks directly in the WordPress dashboard
  • Stored in a portable JSON file for version control friendliness
  • Organized by status and priority

Navigate to: ?page=functionalities&module=task-manager


Redirect Manager

Manage URL redirects directly from WordPress admin with high-performance file-based storage.

Features:

  • Supports 301, 302, 307, and 308 redirects
  • File-based JSON storage for zero database overhead during redirects
  • Integrated hit counter for tracking redirect usage
  • Normalized path matching

Navigate to: ?page=functionalities&module=redirect-manager


Login Security

Enhanced login protection and security measures for your WordPress site.

Features:

  • Limit login attempts to prevent brute force attacks
  • Configurable lockout durations
  • Disable XML-RPC authentication and application passwords
  • Hide detailed login errors to prevent user enumeration
  • Custom login page logo and background styling

Navigate to: ?page=functionalities&module=login-security


Link Management: Developer Reference

JSON Preset Format

Create exception-urls.json in your theme or plugin directory:

{
  "urls": [
    "https://example.com/trusted-page",
    "https://partner-site.com",
    "https://another-trusted-site.com/blog"
  ]
}

Priority order: Custom path → Developer filter → Child theme → Parent theme → Plugin default

Developer Filters

// Add exception domains
add_filter( 'functionalities_exception_domains', function( $domains ) {
    $domains[] = 'trusted-site.com';
    return $domains;
});

// Add exception URLs
add_filter( 'functionalities_exception_urls', function( $urls ) {
    $urls[] = 'https://example.com/page';
    return $urls;
});

// Custom JSON file path
add_filter( 'functionalities_json_preset_path', function( $path ) {
    return get_stylesheet_directory() . '/my-exceptions.json';
});

Database Update Tool

Navigate to Link Management and scroll to "Database Update Tool":

  1. Enter the URL you want to add nofollow to
  2. Click "Update Database"
  3. Confirm the operation
  4. Results show how many posts were updated

Caution: This directly modifies post content in the database.


SVG Icons: Developer Reference

Shortcode

You can render any icon from your library using the [func_icon] shortcode.

[func_icon name="car" class="my-custom-class"]

Attributes:

  • name (required): The slug of the icon as defined in the SVG Icons library.
  • class (optional): Additional CSS classes to add to the <svg> element.

Developer Filters

// Disable the SVG Icons module via code
add_filter( 'functionalities_svg_icons_enabled', '__return_false' );

// Filter the list of available icons
add_filter( 'functionalities_svg_icons_list', function( $icons ) {
    // Modify $icons array
    return $icons;
});

// Filter sanitized SVG content before it is saved to the database
add_filter( 'functionalities_svg_icons_sanitize', function( $svg, $slug ) {
    return $svg;
}, 10, 2 );

File Structure

functionalities/
├── assets/
│   ├── css/
│   │   ├── admin.css
│   │   ├── admin-ui.css
│   │   ├── content-regression.css
│   │   └── svg-icons-editor.css
│   └── js/
│       ├── admin.js
│       ├── admin-ui.js
│       ├── content-regression.js
│       └── svg-icons-editor.js
├── includes/
│   ├── admin/
│   │   ├── class-admin.php
│   │   ├── class-admin-ui.php
│   │   └── class-module-docs.php
│   ├── features/
│   │   ├── class-assumption-detection.php
│   │   ├── class-block-cleanup.php
│   │   ├── class-components.php
│   │   ├── class-content-regression.php
│   │   ├── class-editor-links.php
│   │   ├── class-fonts.php
│   │   ├── class-link-management.php
│   │   ├── class-login-security.php
│   │   ├── class-meta.php
│   │   ├── class-misc.php
│   │   ├── class-redirect-manager.php
│   │   ├── class-schema.php
│   │   ├── class-snippets.php
│   │   ├── class-svg-icons.php
│   │   └── class-task-manager.php
├── languages/
├── exception-urls.json.sample
├── functionalities.php
├── index.php
└── uninstall.php

Adding New Modules

  1. Create a feature class in includes/features/class-your-module.php
  2. Add module definition in Admin::define_modules()
  3. Register settings in Admin::register_settings()
  4. Initialize in functionalities.php

Example module definition:

'your-module' => array(
    'title'       => __( 'Your Module', 'functionalities' ),
    'description' => __( 'Brief description', 'functionalities' ),
    'icon'        => 'dashicons-admin-generic',
),

See readme.txt for the full changelog.

About

A modular site-specific plugin to organize common features with simple toggles. Refactored with modern WordPress coding standards and a beautiful module-based dashboard.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors