在 `wp-config.php` 中 **`require_once ABSPATH . 'wp-settings.php';` 之前** 添加:
<?php
// 1. 完全禁用修訂版
define('WP_POST_REVISIONS', false);
// 2. 或限制修訂版數量 (如保留最近 3 版)
// define('WP_POST_REVISIONS', 3);
// 3. 調整/禁用自動保存間隔 (單位:秒,false 禁用)
define('AUTOSAVE_INTERVAL', 300); // 5分鐘保存一次
// define('AUTOSAVE_INTERVAL', false); // 完全禁用 (WP 5.0+ 可能不完全生效,見下文)
// 4. 禁用圖片編輯創建副本 (節省空間)
define('IMAGE_EDIT_OVERWRITE', true);
優勢:核心加載前生效、無插件依賴、不受主題/插件更新影響、多站點網絡通用。
<?php
// functions.php
// 1. 移除修訂版保存動作 (WP 3.6+)
remove_action('pre_post_update', 'wp_save_post_revision');
// 2. 禁用編輯器自動保存腳本 (經典編輯器/區塊編輯器通用)
add_action('wp_print_scripts', 'disable_autosave_script');
function disable_autosave_script() {
wp_deregister_script('autosave');
}
// 3. 區塊編輯器 禁用自動保存 (WP 5.0+)
add_filter('block_editor_settings_all', 'disable_block_autosave');
function disable_block_autosave($settings) {
$settings['autosaveInterval'] = 0; // 0 表示禁用
return $settings;
}
// 4. 刪除現有修訂版 (一次性清理,執行後可註釋)
// add_action('init', 'delete_all_revisions_once');
// function delete_all_revisions_once() {
// global $wpdb;
// $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
// // 清理孤立 postmeta
// $wpdb->query("DELETE pm FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} p ON pm.post_id = p.ID WHERE p.ID IS NULL");
// remove_action('init', 'delete_all_revisions_once'); // 防重複執行
// }
# 1. 統計修訂版數量
wp post list --post_type=revision --format=count
# 2. 批量刪除 (跳過垃圾箱,直接刪除)
wp post delete $(wp post list --post_type=revision --format=ids) --force
# 3. 優化數據庫 (清理孤立 meta、碎片整理)
wp db optimize
| 插件 | 特點 | 適用場景 |
|---|---|---|
| Disable Post Revision | 極簡、僅禁用修訂版、無設置頁面 | 只需禁用修訂版 |
| WP Revisions Control | 按文章類型限制修訂版數量、清理現有 | 需精細控制 |
| Autosave Interval Control | 調整自動保存間隔、禁用 | 需調整間隔 |
| Optimize Database after Deleting Revisions | 定時清理修訂版、草稿、垃圾箱、優化表 | 定期維護 |
WP 5.0+ 引入 **區塊編輯器**,自動保存邏輯遷移到前端,由 `@wordpress/edit-post` 包管理。`AUTOSAVE_INTERVAL` 僅影響經典編輯器 (TinyMCE) 的 `autosave.js` 腳本。**區塊編輯器需通過 `block_editor_settings_all` 過濾器設置 `autosaveInterval: 0` 才能真正禁用。**
<?php
// === WordPress 性能與存儲優化配置 ===
// 放置在: define('DB_COLLATE', ''); 之後、require_once ABSPATH . 'wp-settings.php'; 之前
// 1. 禁用修訂版 (核心層面)
define('WP_POST_REVISIONS', false);
// 2. 經典編輯器自動保存間隔 (5分鐘,減少頻率)
define('AUTOSAVE_INTERVAL', 300);
// 3. 圖片編輯覆蓋原文件 (不創建副本)
define('IMAGE_EDIT_OVERWRITE', true);
// 4. 禁用文件編輯 (安全加固,防後台主題/插件編輯器被利用)
define('DISALLOW_FILE_EDIT', true);
// 5. 限制媒體上傳大小 (防止巨大文件撐爆存儲,單位字節)
// define('WP_MAX_MEMORY_LIMIT', '256M');
// 6. 強制 SSL 登錄/後台 (生產必開)
// define('FORCE_SSL_ADMIN', true);
// 7. 禁用自動更新核心大版本 (穩定性優先)
// define('WP_AUTO_UPDATE_CORE', 'minor'); // 僅小版本安全更新
// 8. 緩存相關 (需配合對應插件/服務器)
// define('WP_CACHE', true); // 啟用對象緩存 (Redis/Memcached)
// define('WP_REDIS_HOST', '127.0.0.1');
// define('WP_REDIS_PORT', 6379);
核心建議:**`wp-config.php` 定義 `WP_POST_REVISIONS = false` 是唯一必做項**。配合 `functions.php` 禁用區塊編輯器自動保存。定期用 WP-CLI 清理歷史修訂版。拒絕安裝「超級開關」類臃腫插件,核心常量+掛鉤才是 WordPress 之道。