让 WordPress 自动删除 Post Revisions
貌似在 wp-config.php 中加入 define(’WP_POST_REVISIONS’, false); 来禁用 WordPress 的日志修订功能,post revision 还是会产生。gohsy 同学写了个插件 Revision Manager 来清理 post revision,不过个人觉得手动清理还是不够方便,决定利用 WordPress 的计划任务功能(WP_Cron)偷偷懒。
不想为了这小小的功能而多添加一个插件,所以在主题目录下的 functions.php 文件添加了以下代码:
function delete_post_revisions() { global $wpdb; // Also need to delete the post meta and term relationships $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id IN (SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision')"); $wpdb->query("DELETE FROM {$wpdb->term_relationships} WHERE object_id IN (SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision')"); // Delete the post revisions $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'"); } // Register the event add_action('delete_post_revisions_event', 'delete_post_revisions'); if (!wp_next_scheduled('delete_post_revisions_event')) { wp_schedule_event(time(), 'daily', 'delete_post_revisions_event'); }
Recent Comments