WordPress数据库优化之调整自动存稿和手动删除修订版本

WordPress默认在用户编辑文章时,每保存一次就会产生一个修订版本,定时还会自动保存草稿。即使用REST API方式存档,也会产生修订版本。

随着时间推移,修订版本会越来越多,多数情况下这些内容都是冗余的,尤其对于服务器资源吃紧的站点更不友好。

适当调整自动存稿策略,十分有益。

自动存稿

配置文件wp-config.php中,添加如下代码:

// 每分钟保存一次
// define('AUTOSAVE_INTERVAL', 60);
 
// 只保存2个修订版本
define('WP_POST_REVISIONS', 2);
 
// 直接禁用修订版本功能
// define('WP_POST_REVISIONS', false);

使用WP_POST_REVISIONS指定修订版本数量,实际运行时,系统还会自动删除多余的版本。比如,一篇文章有10个修订版本,指定2个后,系统永远只会保存两个最新的修订版本,索引ID依旧自动增长。

删除修订版本

控制修订版本数量的好处自然不必多说,如果想要删除数据库中所有修订版本,一篇篇去保存,当然不可取。

推荐一次性删除所有修订版本,在主题文件function.php中添加:

 $wpdb->query( "
 DELETE FROM $wpdb->posts
 WHERE post_type = 'revision'
 " );

刷新一次网页即可,切记:

  1. 操作前记得先备份数据库
  2. 如果数据库内容过多,请谨慎运行,毕竟一次性删除过多记录,非常耗时耗资源,网站可能短时间内非常卡
  3. 运行一次后,最好还是删除或注释,用上方的自动存稿策略

参考资料

https://www.trickspanda.com/how-to-delete-wordpress-post-revisions-using-fuctions-php-file/