WordPress模板插件定制

您现在的位置是:首页 > WordPress教程WordPress教程

为什么WordPress自动草稿占用空间?

查看 WP集市 的更多文章WP集市 2025-08-21 【WordPress教程】 1346人已围观

哎,说真的啊,最近帮客户维护WordPress网站,老遇到一个坑——后台数据库越来越大,扒开phpMyAdmin一看,好家伙,wp_posts表里全是些“自动草稿”!这玩意儿到底是啥?咋就偷偷占空间了?今天咱掰开揉碎了说,顺便教你怎么治它,别让这些“数字垃圾”拖慢你网站!

先搞懂:自动草稿是个啥玩意儿?

你写文章时,是不是经常遇到“写一半浏览器崩了”“突然断网”的崩溃瞬间?WordPress为了防这个,搞了个“自动草稿”功能——就跟你用Word时它偷偷存临时文件一样,你点“新建文章”那一刻,哪怕还没敲一个字,WordPress已经在数据库里插了条记录,post_status字段标着auto-draft(自动草稿)。之后呢?默认每隔60秒,它还会自动更新一次这个草稿,生怕你丢内容。

但问题来了:这草稿它只负责“存”,不负责“删”啊!你要是点了“新建文章”又没写完,关了页面;或者作者多,每个人都开几个未完成的草稿……这些“auto-draft”就像没人管的快递盒,堆在数据库里,占着空间不挪窝。

为啥它能把数据库撑大?俩字:能存+不删

我之前遇到个客户,数据库里200多个自动草稿,占了200多MB!你可能觉得“一个草稿能有多大?”——但架不住数量多啊!每个自动草稿虽然内容少,但它在wp_posts表里占一行记录,还关联着wp_postmeta(自定义字段)、wp_term_relationships(分类关联)这些表,相当于“一个人带一群小弟”,时间长了,可不就臃肿了?

更坑的是啥?WordPress这货有点“健忘”。它只在你手动发布文章彻底删除草稿时,才会顺带删对应的自动草稿;要是你开了草稿没管,或者电脑死机没保存,这些“auto-draft”就永久赖在数据库里了,占着茅坑不拉屎。

教程来了:3步清理+预防,让数据库瘦下来!

别慌,清理起来不难,分“手动删”“自动删”“从源头减少”三步,小白也能抄作业!

第一步:手动清理现有垃圾(先备份!先备份!先备份!)

重要的事说三遍:删数据库前,一定用插件(比如UpdraftPlus)或phpMyAdmin备份数据库,删崩了还能救!

备份完了?行,打开phpMyAdmin,找到你的WordPress数据库(一般是网站域名开头的那个),点“SQL”标签,复制粘贴这段代码:

DELETE FROM wp_posts WHERE post_status = 'auto-draft';

(注意啊!wp_是你数据库的前缀,不一定都是wp_,自己看表名,比如有的是wp89_posts,就把wp_posts改成wp89_posts!)

执行完刷新一下,再看wp_posts表,那些auto-draft记录是不是少了一大半?我上次帮客户删完,数据库直接小了1/3,网站加载速度都快了半秒!

第二步:让WordPress自动删(写段代码一劳永逸)

手动删一次不够,总不能天天盯着吧?咱写段代码,让它定期自动清理过期的自动草稿。

打开你主题的functions.php(别直接改父主题!用子主题!不会建子主题?搜“WordPress子主题生成器”,在线生成一个),在末尾加这段代码:

// 每天自动清理7天前的自动草稿
function clean_old_auto_drafts() {
  global $wpdb;
  // 删7天前的auto-draft,时间可以改,比如30天就把7改成30
  $wpdb->query( "DELETE FROM {$wpdb->posts} WHERE post_status = 'auto-draft' AND post_date < DATE_SUB(NOW(), INTERVAL 7 DAY)" );
}
// 注册定时任务
if ( ! wp_next_scheduled( 'clean_auto_drafts_event' ) ) {
  wp_schedule_event( time(), 'daily', 'clean_auto_drafts_event' ); // 每天执行一次
}
add_action( 'clean_auto_drafts_event', 'clean_old_auto_drafts' );

这段代码啥意思?就是让WordPress每天自动删一次“7天前创建的自动草稿”,时间可以自己调,比如改成30天就把INTERVAL 7 DAY换成INTERVAL 30 DAY。以后再也不用手动删了!

第三步:从源头减少生成(少存点,就不用删了)

光删不够,还得让它少生成点。WordPress默认60秒自动保存一次草稿,太频繁了,咱把间隔拉长;另外,限制一下未完成草稿的数量。

打开网站根目录的wp-config.php,在/* That's all, stop editing! Happy publishing. */上面加两句:

// 自动保存间隔改成5分钟(300秒),默认60秒太费
define( 'AUTOSAVE_INTERVAL', 300 );
// 限制每个用户最多同时有2个未完成草稿(防作者乱开页面)
define( 'WP_POST_REVISIONS', 2 ); 

这样一来,自动草稿生成速度慢了,数量也少了,数据库自然清爽多了!

最后说句大实话

WordPress好用归好用,但它就像个“不收拾房间的室友”,时间长了各种临时文件、冗余数据堆一堆。定期清理自动草稿这种“小操作”,看着不起眼,却能让数据库瘦一圈,网站加载快一截——毕竟数据库小了,查询速度就快,服务器压力也小,何乐而不为呢?

行了,今儿就唠到这儿。记住啊,清理前一定备份数据库,代码别瞎改(复制粘贴咱给的就行)。觉得有用的话,点赞收藏走一波,下次遇到数据库臃肿,直接翻出来抄作业!

Tags:

WordPress模板插件定制