
您现在的位置是:首页 > WordPress教程WordPress教程
为什么WordPress自动草稿占用空间?
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:
文章版权声明:除非注明,否则均为WP集市原创文章,转载或复制请以超链接形式并注明出处。

热门文章
