=== Site Cleanup Controls ===
Contributors: devabhisheksinha
Tags: performance, security, disable, cleanup, hardening
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.2
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Selectively disable WordPress features to improve performance, security, and cleanliness. Toggle each feature individually from a single settings page.

== Description ==

Abhishek Site Cleanup Controls gives developers and site owners fine-grained control over 35+ WordPress features that are often unnecessary. Each feature has a simple on/off toggle, organised into five logical groups inside **Settings -> Site Cleanup Controls**.

No features are enabled by default — activate only what you need.

= Security =
* **User Enumeration** — Block ?author=N redirect attacks that expose usernames.
* **Author Archives** — Return 404 for author archive pages.
* **XML-RPC + Pingback** — Fully disable the XML-RPC endpoint and remove the X-Pingback header.
* **Plugin and Theme Editor** — Set DISALLOW_FILE_EDIT to prevent in-admin file editing.
* **Application Passwords** — Disable the Application Passwords feature.
* **REST API** — Restrict REST API access to authenticated users only.
* **Right Click** — Disable the browser context menu on the frontend.

= Performance =
* **Emojis** — Remove all emoji scripts, styles, and DNS prefetch hints.
* **Embed Objects** — Disable WordPress oEmbed and embed scripts.
* **Dashicons** — Prevent Dashicons from loading for non-logged-in visitors.
* **Heartbeat** — Deregister the Heartbeat API script.
* **Block Library CSS** — Remove wp-block-library and global-styles stylesheets on the frontend.
* **Version Var (?ver=)** — Strip ?ver= query strings from enqueued asset URLs.
* **PDF Thumbnails** — Skip thumbnail generation for uploaded PDF files.
* **oEmbed** — Remove oEmbed discovery links and disable autoembed.
* **Remote Block Patterns** — Stop WordPress fetching patterns from api.wordpress.org.

= Head Cleanup =
* **Generator Meta Tag** — Remove the WordPress version meta tag from head.
* **WLW Manifest** — Remove the Windows Live Writer manifest link.
* **Really Simple Discovery (RSD)** — Remove the RSD link tag.
* **Short Link** — Remove the shortlink tag and HTTP header.
* **Adjacent Posts Links** — Remove prev/next link tags from single post heads.
* **RSS Feeds** — Redirect all feed URLs to the homepage.

= Admin Cleanup =
* **capital_P_dangit** — Remove WordPress forced capitalisation filter.
* **Screen Options and Help Tabs** — Hide Screen Options and Help dropdowns.
* **Howdy to Welcome** — Replace "Howdy," with "Welcome," in the admin bar.
* **Navigation Items in Admin Bar** — Remove WP logo, site name, updates, and comments.
* **Clean Dashboard** — Remove all default dashboard widgets.
* **Privacy Tools** — Hide Export/Erase Personal Data from the Tools menu.
* **Site Health Page** — Hide Site Health from the Tools menu.
* **WP Login Logo and Favicon** — Hide the WordPress logo on the login page.
* **Admin Email Verification Prompt** — Disable the admin email confirm interstitial.
* **Empty Trash (1 week)** — Shorten automatic trash-emptying from 30 days to 7 days.

= Content =
* **Comments** — Disable comments sitewide.
* **Post Revisions** — Disable revision storage.
* **Search** — Redirect all search queries to the homepage.

= WordPress Features =
* **Thumbnails / Featured Images** — Remove post thumbnail support.
* **Widgets** — Disable all widgets and sidebars.
* **Navigation Menus** — Remove nav menu theme support.
* **Tags** — Unregister tags from posts.
* **Categories** — Unregister categories from posts.
* **Post Formats** — Remove post format theme support.
* **Custom Fields** — Remove custom fields meta box from editor.
* **Excerpts** — Remove excerpt support from posts and pages.
* **Trackbacks** — Remove trackback support from posts.
* **Attachment Pages** — Redirect attachment URLs to the file directly.
* **Automatic Updates** — Disable automatic core, plugin, and theme updates.
* **Self Pings** — Stop WordPress pinging your own site.
* **jQuery Migrate** — Remove jQuery Migrate script on the frontend.

== Installation ==

1. Upload the `abhishek-site-cleanup-controls` folder to `/wp-content/plugins/`.
2. Activate the plugin through the Plugins menu in WordPress.
3. Go to **Settings -> Site Cleanup Controls**.
4. Toggle the features you want to disable and click **Save Changes**.

== Frequently Asked Questions ==

= Do any features activate automatically? =

No. Every feature is off by default. You choose exactly what to enable.

= Will disabling the REST API break the block editor? =

No. The toggle only blocks unauthenticated requests. Logged-in users and the block editor are unaffected.

= Post Revisions or the Plugin/Theme Editor toggle is not working — why? =

WP_POST_REVISIONS and DISALLOW_FILE_EDIT are core constants that work most reliably when defined in wp-config.php before WordPress loads. The plugin sets them at runtime as a convenience, but for guaranteed effect add them to wp-config.php directly.

= Will my settings be deleted if I deactivate the plugin? =

No. Settings are only removed when you delete the plugin. An uninstall.php file handles clean removal.

== Screenshots ==

1. The main settings page with all features grouped by category.
2. The Security group with individual feature toggles.
3. The Performance group with individual feature toggles.

== Changelog ==

= 1.1.2 =
* Updating to latest wordpress version.

= 1.1.1 =
* Fixed fatal parse error caused by missing closing bracket in feature list array.
* Fixed PHP 7.4 compatibility issue with str_starts_with().

= 1.1.0 =
* Added new WordPress Features group with 13 toggles: Thumbnails, Widgets, Navigation Menus, Tags, Categories, Post Formats, Custom Fields, Excerpts, Trackbacks, Attachment Pages, Automatic Updates, Self Pings, jQuery Migrate.

= 1.0.1 =
* Settings page redesigned with accordion groups, Security open by default.

= 1.0.0 =
* Initial release with 35 toggleable features across 5 categories.

== Upgrade Notice ==

= 1.1.1 =
Bug fix release — resolves fatal activation error introduced in 1.1.0.

= 1.1.0 =
Adds 13 new WordPress feature toggles.

= 1.0.1 =
Settings page redesigned with accordion groups, Security open by default.

= 1.0.0 =
Initial release.