ຄຳອະທິບາຍ
Scotty is the all-in-one solution for controlling, cleaning, and optimizing your WordPress site. With a modern React-based dashboard and a powerful feature suite, Scotty empowers you to analyze and maintain your database, manage cron jobs, fine-tune security, and control dozens of hidden WordPress settings — all from a single, intuitive interface.
For full documentation, visit the Scotty website.
Cleaning
- Trash Management — Delete post revisions, auto-drafts, trashed posts, unapproved/spam/trashed comments, orphaned metadata, and transient options in bulk or one by one.
- Duplicates Detection — Identify and remove duplicate entries across post meta, comment meta, user meta, and term meta tables.
- Orphan Cleanup — Find and delete orphaned records in postmeta, commentmeta, usermeta, termmeta, and term relationships.
Optimization
- Database — View all database tables with engine, auto-increment, collation, and overhead info. Optimize tables and reset auto-increment values individually or in bulk.
- Disk Usage — Overview of WordPress installation size breakdown: core, themes, plugins, uploads, and database.
System
- Cron Manager — View all scheduled cron jobs with next run time, schedule, interval, and arguments. Run, delete, search, sort, and bulk-manage cron jobs. Color-coded schedule badges and time-relative status indicators.
- Shortcode Registry — Browse all registered shortcodes with their callback functions and callable status.
WordPress Settings
Control dozens of WordPress settings organized in 6 tabs:
General
* Enable/disable REST API and XML-RPC
* Hide WordPress version from source code
* Hide detailed login error messages
* Disable email authentication
* Disable the built-in file editor
* Disable author archives (prevents user enumeration)
* Disable Application Passwords
Admin
* Show/hide admin footer credit and version
* Show/hide the Welcome panel
* Toggle visibility of Dashboard, Posts, Media, Pages, Comments, and Tools menu items
* Disable update nags for non-admin users
* Disable the periodic admin email verification prompt
Writing
* Limit the number of post revisions
* Disable self-pings
* Configure auto-empty trash interval
Reading
* Set custom excerpt length
* Hide admin bar on frontend
* Disable emoji scripts and styles
* Disable embed scripts (wp-embed.js)
* Disable jQuery Migrate on frontend
* Disable RSS and Atom feeds
Performance
* Disable Heartbeat API on frontend
* Set custom Heartbeat interval
* Remove Dashicons CSS from frontend for non-admin users
Media
* Disable big image scaling (WordPress 5.3+)
* Set custom JPEG compression quality
Dashboard Widget
A compact dashboard widget on the WordPress Dashboard showing posts, comments, users, and options breakdown with progress bars, plus database size and cron count at a glance.
Coming Soon
- Multisite support
- Database rename, truncate, drop, export, import
- Database search and replace
- Database backup
- Scheduled auto-cleaning
- Spotlight search (CMD+K)
- And more…
ພາບໜ້າຈໍ
ການຕິດຕັ້ງ
- Upload the entire content of plugin archive to your
/wp-content/plugins/directory. - Activate the plugin through the ‘Plugins’ menu in WordPress (deactivate and reactivate if you’re upgrading).
- Done. Enjoy.
ຄຳຖາມທີ່ພົບເລື້ອຍ
-
1. What is Scotty?
-
Scotty is a WordPress maintenance and optimization plugin with a modern React-based dashboard. It helps you clean your database, manage cron jobs, control security settings, and optimize your site performance.
-
2. Do I have to back up before cleaning?
-
Yes, we strongly recommend backing up your database before performing any cleanup operation.
-
3. Can I undo a cleanup operation?
-
No, cleanup operations are permanent. Always back up first.
-
4. Will disabling the REST API break my site?
-
Disabling the REST API will prevent unauthenticated access. Logged-in users will still have access. Some plugins may require the REST API to function — test after disabling.
-
5. Where can I find the documentation?
-
Full documentation, guides, and release notes are available at scotty-plugin.vercel.app.
-
6. Can I request a new feature?
-
Yes! Please submit feature requests at the support forum.
-
7. Can I report a bug?
-
Yes! Please report bugs at the support forum.
ການຣີວິວ
ບໍ່ມີການຣີວິວສຳລັບປລັກອິນນີ້.
ຜູ້ຮ່ວມພັດທະນາ ແລະ ຜູ້ພັດທະນາ
“Scotty” ແມ່ນຊອຟແວໂອເພັນຊອດ (Open Source). ບຸກຄົນຕໍ່ໄປນີ້ໄດ້ມີສ່ວນຮ່ວມໃນການພັດທະນາປລັກອິນນີ້.
ຜູ້ຮ່ວມພັດທະນາສົນໃຈຮ່ວມພັດທະນາບໍ່?
ເບິ່ງລະຫັດ, ກວດເບິ່ງ ຄັງເກັບ SVN, ຫຼື ຕິດຕາມ ບັນທຶກການພັດທະນາ ຜ່ານ RSS.
ບັນທຶກການປ່ຽນແປງ
2.0.2
- Feature: add Trash Summary card to Overview with total cleanable items, breakdown badges, and “Clean now” link
- Feature: add Environment Info card to Overview showing PHP, WordPress, MySQL versions, memory limit, max upload size, and server
- Feature: add Documentation link button in Features dropdown menu
- Feature: redesign footer with Docs and Report Issue links, WP Bones and Mantine UI credits with icons
- Feature: add Database Size and Cron Jobs count to dashboard widget
- Enhancement: add loading skeleton and error state to dashboard widget
- Enhancement: translate all dashboard widget tooltip strings for i18n support
- Enhancement: reduce dashboard widget bundle size by removing unused providers and CSS imports
- Enhancement: add link to documentation website in readme.txt description and FAQ
- Enhancement: rewrite README.md with badges, links, features, tech stack, and project structure
- Fix: modal confirm title invisible in dark mode
- Fix: WPBonesLogo component using wrong Mantine v8 size props (width/height instead of w/h)
- Fix: dashboard widget “Open Scotty” link pointing to #trash instead of overview
- Chore: regenerate translation files (POT, PO, MO, JSON) with all new strings (223 total, Italian 100%)
2.0.1
- Security: restrict admin menu capability from ‘read’ to ‘manage_options’ to prevent subscriber access
- Security: add integer type casting to all AJAX delete endpoints for defense-in-depth
- Security: wrap remaining raw SQL queries with $wpdb->prepare() in duplicate meta deletion methods
- Fix: replace non-functional EMPTY_TRASH_DAYS constant with wp_scheduled_auto_delete_period filter
- Fix: replace impossible is_null() check with empty() after sanitize_text_field() in CronTrait
- Fix: correct resetAutoIncrement() to accumulate results across multiple tables
- Fix: resolve potential undefined array key when more than 13 data categories exceed color palette
- Fix: correct typo in OverviewAjaxServiceProvider ($commnets_count)
- Performance: add ORDER BY and LIMIT 1000 to comment listing queries to prevent unbounded result sets
- Enhancement: suppress deprecated WP_Debug_Data::get_sizes() notice in DiskTrait
- Chore: align PHP version requirement to >=8.1 across composer.json, readme.txt, and scotty.php
- Chore: update package.json version to match plugin version
- Chore: update blueprint.json to use wordpress.org/plugins slug resource and target PHP 8.2
- Chore: remove dead code (unused removeMenu method, empty PreferencesTrait, unreachable Ajax method)
- Chore: standardize returnColumnsJson() visibility to private across all Ajax service providers
2.0.0
Major release with security hardening, modernized stack, UI improvements, and new features.
New Features
- WordPress Settings: new Security options — disable file editor, author archives, Application Passwords
- WordPress Settings: new Admin Menu options — toggle Media, Pages, Comments, Tools visibility
- WordPress Settings: new Admin Notices options — disable update nags, admin email verification
- WordPress Settings: new Writing options — disable self-pings, auto-empty trash with configurable days
- WordPress Settings: new Reading options — disable emoji scripts, embed scripts, jQuery Migrate, RSS feeds
- WordPress Settings: new Performance tab — Heartbeat control, Dashicons removal on frontend
- WordPress Settings: new Media tab — disable big image scaling, custom JPEG quality
- WordPress Settings: unified OptionsProvider with single fetch and shared Reset button
- Cron: delete individual cron jobs with confirmation modal
- Cron: bulk delete selected cron jobs
- Cron: search/filter by hook name
- Cron: sortable columns (hook name, next run, schedule)
- Cron: row expansion showing signature, interval, and arguments
- Cron: right-click context menu with Run and Delete actions
- Cron: colored schedule badges (hourly, daily, weekly, one-time)
- Cron: time-relative status indicators (overdue, soon, upcoming)
- Overview: new Database Size quick card with link to Database section
- Overview: new Scheduled Cron Jobs quick card with link to Cron section
- Overview: clickable cards navigate to their corresponding section
- Overview: refresh button to reload all overview data
- Trash: bulk delete for unapproved, spam, and trashed comments
- Trash: orphan term relationships listing, single and bulk delete
- Duplicates: single and bulk delete for duplicate user meta and comment meta
Security
- Fixed SQL injection in database optimize and auto-increment reset (table name whitelist)
- Added schema validation and recursive sanitization for preferences update
- Added esc_html() to all meta/option/comment values in JSON responses
- Fixed hardcoded wp_posts table prefix in SQL subqueries
- Added $wpdb->prepare() to all orphan detection queries
- Sanitized cron hook_name and signature inputs
- Fixed transient query missing prepared statement
- Fixed XML-RPC error handler using PHP Error class instead of WP_Error
- Standardized LIKE clause syntax across all queries
- Fixed hardcoded commentmeta table prefix in orphan deletion
Bug Fixes
- Fixed Disk overview showing NaN for timed-out directory calculations
- Fixed Disk overview crash when WordPress size data contains error strings
- Fixed division by zero in Options overview when option count is zero
- Fixed OverviewCard pulsing indicator on arbitrary >50% values
- Fixed admin bar removal running too early (before scripts are registered)
- Fixed Reset to default not actually resetting options to defaults
- Fixed each WordPress Settings tab creating a separate OptionsProvider (4 redundant fetches)
- Fixed SWR mutate() not revalidating after bulk operations across all views
- Fixed broken Refresh button in empty Trash/Duplicates view
- Fixed Terms crash when excluded term IDs array is empty
- Fixed translated strings interpolated in SQL (comments)
- Fixed duplicate term meta deletion keeping wrong entry
- Fixed Features popover Overview link not working
- Fixed “Database Sneak Peak” typo (now “Sneak Peek”)
- Fixed getOptions crash on undefined path segments when new options are not yet in database
Improvements
- Migrated from npm to Yarn
- Updated @wordpress/scripts from 27.9.0 to 31.7.0
- Updated Mantine from 7.14.0 to 8.3.18
- Updated all dependencies to latest compatible versions
- Migrated to React 18 createRoot API (replaced deprecated wp.element.render)
- Modernized tsconfig.json (es2020, react-jsx, bundler resolution)
- Removed all unnecessary
import * as Reactstatements (30 files) - Removed deprecated MantineProvider withStaticClasses prop
- Fixed Mantine 8 Image component rendering in header logo
- Performance: replaced N+1 user queries with single count_users() call
- Performance: removed repeated COUNT(*) subqueries in post/comment stats
- Performance: added LIMIT 1000 to orphan detection queries
- Removed esc_sql() mixing with prepare() in term relationships
- Cleaned up dead code and unused imports across Cron, Shortcode, and Options components
- Added error handling to Options/Preferences provider
- Improved AJAX error throwing with structured status/statusText
1.1.0
- Refactored code in TypeScript
- Added internationalization support
- Added total item count in Cron and Shortcode views
- Added links in the left sidebar
- Disabled admin notices for the Scotty view
- Fixed unused terms view to enable deletion of unused terms
1.0.0
- First public release










