WordPress数据库优化之调整自动存稿和手动删除修订版本
2021-12-11
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'
" );
刷新一次网页即可,切记:
- 操作前记得先备份数据库
- 如果数据库内容过多,请谨慎运行,毕竟一次性删除过多记录,非常耗时耗资源,网站可能短时间内非常卡
- 运行一次后,最好还是删除或注释,用上方的自动存稿策略
参考资料
https://www.trickspanda.com/how-to-delete-wordpress-post-revisions-using-fuctions-php-file/