Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,23 @@ jobs:
test -s "$zip"
unzip -t "$zip"
for required in \
functionalities/includes/admin/class-admin-icons.php \
functionalities/assets/brand/functionalities.svg \
functionalities/assets/brand/functionalities-admin.svg \
functionalities/assets/css/admin-brand.css \
functionalities/assets/css/admin-icons.css \
functionalities/assets/css/admin-polish.css \
functionalities/assets/js/admin-polish.js \
functionalities/assets/js/admin-link-health.js \
functionalities/assets/icons/settings.svg \
functionalities/assets/icons/arrow-left.svg \
functionalities/assets/icons/LICENSE \
functionalities/includes/features/class-content-tools.php \
functionalities/includes/features/class-link-health.php \
functionalities/includes/features/class-site-activity.php \
functionalities/includes/admin/trait-admin-utilities-ui.php \
functionalities/includes/admin/class-link-health-controller.php \
functionalities/includes/admin/class-site-activity-controller.php \
functionalities/functionalities.php \
functionalities/readme.txt \
functionalities/uninstall.php \
Expand Down
Binary file modified .wordpress-org/banner-1544x500.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .wordpress-org/banner-772x250.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
248 changes: 0 additions & 248 deletions .wordpress-org/banner.svg

This file was deleted.

Binary file modified .wordpress-org/icon-128x128.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .wordpress-org/icon-256x256.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .wordpress-org/screenshot-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .wordpress-org/screenshot-2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .wordpress-org/screenshot-3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .wordpress-org/screenshot-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 29 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-FFDD00?style=flat&logo=buymeacoffee&logoColor=black)](https://buymeacoffee.com/gauravtiwari)

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

**Version:** 1.6.3
**Version:** 1.7.0
**Requires WordPress:** 6.3 or later (tested up to 7.1)
**Requires PHP:** 7.4 or later
**License:** GPL-2.0-or-later
Expand All @@ -22,14 +22,20 @@ All-in-one WordPress optimization toolkit with 16 modules for performance, secur

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

Link Health shows live scan activity, a progress bar, checked-link counts, and 50 results per page across all scanned sources. Keep its workspace open for continuous bounded checking; Stop finishes the current batch and Resume continues from saved progress. See [live scan verification](docs/link-health-live-verification.md).

## Backend branding and controls

The admin sidebar and dashboard use a simplified vector version of the Functionalities mark that follows WordPress's UI colors. Individual module pages show their own icon, a Back to modules button, and complete breadcrumbs. Settings and module guidance use a responsive grid, with guidance in the right sidebar on wide screens and below settings on smaller screens. Module/action icons are bundled Tabler outline SVGs with their MIT license. Backend controls share consistent spacing, sizing, focus states, and accessible labels, including responsive font and PWA repeaters. See [UI verification](docs/ui-polish-verification.md) and [sidebar verification](docs/ui-sidebar-verification.md).

## Documentation

Full documentation is at **[functionalities.dev](https://functionalities.dev/)**:

| | |
|---|---|
| [Getting started](https://functionalities.dev/docs/getting-started) | Install, enable a module, verify it works |
| [Module reference](https://functionalities.dev/modules) | What each of the 16 modules does |
| [Module reference](https://functionalities.dev/modules) | What each of the 19 modules does |
| [Dashboard](https://functionalities.dev/docs/dashboard) | Working with the module dashboard |
| [Hooks](https://functionalities.dev/docs/hooks) | Every action and filter the plugin fires |
| [API reference](https://functionalities.dev/docs/api-reference) | Extending the plugin in code |
Expand Down Expand Up @@ -57,6 +63,24 @@ This plugin is built with a "Performance First" philosophy. Unlike many all-in-o

## Modules

### Content Tools

Adds **Duplicate as draft** to native post/page row actions. The new draft belongs to the current user and preserves stored block content, excerpt, taxonomies, featured image, and page template. Source identity, publication state, comments, revisions, edit locks, and scan metadata are excluded. Copying additional metadata requires the `functionalities_content_tools_meta_keys` allowlist filter and the corresponding metadata permissions. A failed copy removes the partial draft.

### Link Health

Checks anchor links in stored public, published posts/pages in small resumable batches. Duplicate destinations share expiring results. Safe HEAD requests use bounded GET confirmation before marking 404/410 as broken; authentication errors, rate limits, transport failures, and server errors remain inconclusive. Redirect hops are validated individually.

The workspace provides manual start/resume/stop, per-link ignore/recheck, source editing links, paginated reports, and CSV export. Weekly scans are separately opt-in and use WP-Cron. Reports mark content changes, partial scans, and the 1,000 unique links per post limit. Password-protected content, dynamic output, shortcodes, and navigation are excluded. Scans never rewrite content. Results are stored in post metadata, URL checks in expiring transients, and the worker cursor in protected atomic storage.

### Site Activity

Stores a private history of module-setting field changes, post/page status transitions, and plugin/theme changes. Entries include actor ID, event, target, and timestamp. Setting values, snippet bodies, content, passwords, tokens, visitor IPs, and request data are excluded. The workspace supports search, event/actor filters, pagination, and explicit clearing.

History is bounded to 1,000 entries and 30 days, with daily pruning. WordPress privacy export/erasure and user deletion anonymize actor references, including when recording is disabled. Logging failures leave the underlying site operation intact.

All three modules are disabled by default and follow the existing uninstall retention preference.

### Link Management

Complete external link control with nofollow automation.
Expand Down Expand Up @@ -440,7 +464,7 @@ functionalities/
│ ├── core/
│ │ ├── class-module-registry.php Module list + lazy loader
│ │ └── class-wordpress-7-integration.php Abilities, DataViews, AI
│ ├── features/ One class per module (16)
│ ├── features/ One class per module (19)
│ ├── storage/
│ │ ├── class-atomic-json-store.php Locked, atomic JSON writes
│ │ └── class-data-directory.php Private data path + hardening
Expand Down Expand Up @@ -492,7 +516,7 @@ Example module definition:

## Support This Project

Functionalities is a free and open source WordPress plugin with 16 modules for performance, security, SEO and content management, each behind its own toggle. For 1.6.0 I moved Link Management, Block Cleanup and Schema to the WordPress HTML API so they edit attributes in place and leave Vue and Alpine templates alone.
Functionalities is a free and open source WordPress plugin with 19 modules for performance, security, SEO and content management, each behind its own toggle. For 1.6.0 I moved Link Management, Block Cleanup and Schema to the WordPress HTML API so they edit attributes in place and leave Vue and Alpine templates alone.

If it replaced a separate redirect manager or a header and footer snippets plugin on your site, you can buy me a coffee.

Expand Down
4 changes: 4 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# 1.7.0 implementation

Approved: Content Tools, Link Health, Site Activity. See [the module design](docs/plans/2026-10-02-v1.7.0-modules-design.md). All three modules are implemented and verified on Gatilab. See [verification](docs/v1.7.0-verification.md). Public release remains a separate step.

# Dynamic Functionalities Roadmap

The next candidate is **1.6.3**. Preserve existing options, hooks, saved content, and
Expand Down
Loading
Loading