wordpress删除文章修订版本和自动草稿而残留的数据

数据无价!友情提示,清理WordPress数据库冗余数据之前,请务必备份数据库!务必!

下面介绍批量删除数据库中因WordPress文章修订版本、自动保存和自动草稿生成的大量占用数据库空间的冗余数据的3种方法:

方法一:执行 SQL 语句命令批量清除WordPress文章的修订版本和自动草稿生成的多余数据
展开两种方法执行 SQL 语句命令
方法1:进入 mysql 命令,选择你所创建的数据库的命令:mysql> USE MYSQLDATA; (注:MYSQLDATA是数据库的名称。按回车键出现 Database changed 时说明选择数据库操作成功!)。选择好相应的数据库后,执行 SQL 命令。

方法2:通过 phpmyadmin 登录后打开数据库管理系统,找到网站对应的wordpress数据库,点击后,在上方有个 SQL 按钮,执行 SQL 命令。

通过SQL命令先来看一下冗余数据(无用的自动修订、草稿等)。执行如下 SQL 命令:

— 查看自动修订产生的冗余数据
— 注意,请根据自己的情况,修改表名(主要是表前缀)
SELECT * FROM wp_posts WHERE post_type = ‘revision’;

删除 SQL 命令如下:
mysql代码

-- 查看自动修订产生的冗余数据
SELECT * FROM wp_posts WHERE post_type = 'revision';

-- 删除修订版本
DELETE FROM wp_posts WHERE post_type = 'revision';

-- 查看自动草稿冗余数据
SELECT * FROM wp_posts WHERE post_status = 'auto-draft';

-- 删除自动草稿冗余数据
DELETE FROM wp_posts WHERE post_status = 'auto-draft';

-- 删除修订版本和自动草稿的关联数据
DELETE a, b, c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_status = 'auto-draft' OR a.post_type = 'revision';

PS:wp_posts 是 WordPress 的文章数据表,wp_ 是默认的前缀,如果自定义更改过,请根据实际修改即可。

 

方法二:通过代码来进行批量删除WordPress文章的修订版本和自动草稿生成的数据
将下边的代码添加到到当前主题目录下 functions.php 文件(后台—》主题—》编辑—》选择模板函数),在php结束标记 ?> 前 ,然后刷新一下网页,会删除全部文章修订版本和自动草稿文章。

// 删除修订版本所对应的相关联数据和自动草稿中的冗余数据。post_status=’auto-draft’对应的是自动草稿数据

$wpdb->query( “DELETE FROM $wpdb->posts WHERE post_status=’auto-draft’ or post_type = ‘revision'” );

方法三:利用WordPress数据库清理优化插件 WP Clean Up 或 WP Cleaner 批量删除
可以在后台直接搜索 WP Clean Up 进行安装,或者 下载 WP Clean Up 后,解压并上传到 /wp-content/plugins/ 目录,然后在后台“插件”那里启用。

WP Clean Up 插件是一个 wordpress数据库清理优化插件,启用后“设置”→“WP Clean Up”即进入了操作界面,就可以看到插件的两个主要功能:清理数据和优化数据库。

WP Cleaner 插件的功能很简单,就是为了快速删除自动保存的文章冗余修订版和草稿的,节省空间,提高速度。

界面也很简单,直接安装后,不需要设置就可以使用,WP Cleaner插件有保护机制,无论怎么操作都不会影响已发布的文章。

转自:https://cloud.tencent.com/developer/article/2454635

个人补充 这个php代码更好用。(注意,这个代码运行一次就可以删除,或者注释掉,可以每当运行一星期或者一个月运行一次即可。)


//注意如果无法运行请检查是否有中文符号,有则需要修改成英文版的双引号或者单引号以及逗号。
function delete_revisions_and_drafts() {
global $wpdb;

// 删除修订版本
$wpdb->query("DELETE FROM $wpdb->posts WHERE post_type = 'revision'");

// 删除自动草稿
$wpdb->query("DELETE FROM $wpdb->posts WHERE post_status = 'auto-draft'");

// 删除修订版本和自动草稿所对应的相关联数据
$wpdb->query("
DELETE a, b, c
FROM $wpdb->posts a
LEFT JOIN $wpdb->term_relationships b ON (a.ID = b.object_id)
LEFT JOIN $wpdb->postmeta c ON (a.ID = c.post_id)
WHERE a.post_status = 'auto-draft' OR a.post_type = 'revision'
");
}

 

//20241227简化版本
function delete_revisions_and_drafts() {
    global $wpdb;
    $wpdb->query("DELETE FROM $wpdb->posts WHERE post_status='auto-draft' OR post_type='revision'");
}
add_action('init', 'delete_revisions_and_drafts');

// 调用函数来删除数据
delete_revisions_and_drafts();

//20241227优化版本
function delete_revisions_and_drafts() {
    global $wpdb;

    // 删除修订版本
    $result1 = $wpdb->query("DELETE FROM $wpdb->posts WHERE post_type = 'revision'");
    if ($result1 === FALSE) {
        // 处理错误
        error_log('Failed to delete revisions.');
    }

    // 删除自动草稿
    $result2 = $wpdb->query("DELETE FROM $wpdb->posts WHERE post_status = 'auto-draft'");
    if ($result2 === FALSE) {
        // 处理错误
        error_log('Failed to delete auto-drafts.');
    }

    // 删除修订版本和自动草稿所对应的相关联数据
    $result3 = $wpdb->query("
        DELETE a, b, c
        FROM $wpdb->posts a
        LEFT JOIN $wpdb->term_relationships b ON (a.ID = b.object_id)
        LEFT JOIN $wpdb->postmeta c ON (a.ID = c.post_id)
        WHERE a.post_status = 'auto-draft' OR a.post_type = 'revision'
    ");
    if ($result3 === FALSE) {
        // 处理错误
        error_log('Failed to delete associated data for revisions and auto-drafts.');
    }
}

// 挂钩到适当的动作上,例如通过插件或主题的自定义功能
// add_action('some_appropriate_hook', 'delete_revisions_and_drafts');

==========================================================

注意修改成英文版的双引号

未经允许不得转载:声达网络 » wordpress删除文章修订版本和自动草稿而残留的数据
客服微信
有问题可以联系我哦
期待您的来访
扫二维码手机阅读本页 赞(0)