我在这里看到三个选项:
1.别着急!
数据库旨在非常有效地处理大量信息。通过分析您的主题/插件或卸载不必要的插件,您一定会大大节省性能。
2. 限制允许的修订数量
有一个很棒的过滤器叫做' wp_revisions_to_keep ',你可以添加它来限制每个帖子的修订。这不是一个理想的解决方案,但它是一个快速的解决方案。
add_filter('wp_revisions_to_keep', function() { return 10; });
或者你可以在 wp-config.php 中使用它来达到同样的效果:
define( 'WP_POST_REVISIONS', 3 );
3. 随时清除修订
在创建新修订之前,会进行检查以确保新版本与旧版本不同。这使用了“wp_save_post_revision_post_has_changed”过滤器(没有可用的官方文档)。
我们可以利用这个钩子来更新现有的钩子。
add_filter( 'wp_save_post_revision_post_has_changed', 'minimize_revisions' );
function minimize_revisions( $hasChanged, $lastRevision, $newRevision ) {
if( !$hasChanged ) return false;
$revisionTimeThreshold = 60 * 60 * 24; // One day
$now = get_the_time('U');
if( $now - strtotime($lastRevision->post_date) < $revisionTimeThreshold ) {
// Update revision, rather than create a new one
$newRevision->ID = $lastRevision->ID;
wp_update_post($newRevision);
return false;
}
return true;
}