Beperk het aantal ‘versies’ in WordPress


Ik vind het vaak niet nodig om meer dan 10 versies terug van een post of pagina te kunnen gaan. Onderstaand script gooit oudere versies automatisch weg, zo houd je je website netjes ‘schoon’ en snel.

Het makkelijkst is om Code Snippets plugin te gebruiken voor deze code.

if (!defined('WP_POST_REVISIONS')) {
    define('WP_POST_REVISIONS', 10);
}

function limit_revision_cleanup() {
    global $wpdb;
    $revision_limit = 10;
    $post_types = get_post_types(array('public' => true));

    foreach ($post_types as $post_type) {
        $posts = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE post_type = '$post_type'");
        foreach ($posts as $post) {
            $revisions = wp_get_post_revisions($post->ID);
            if (count($revisions) > $revision_limit) {
                $to_delete = array_slice($revisions, $revision_limit);
                foreach ($to_delete as $revision) {
                    wp_delete_post_revision($revision->ID);
                }
            }
        }
    }
}

add_action('init', 'limit_revision_cleanup');