How to delete post revisions?

时间:2012-10-16 作者:hugemeow

我没有设置修订数量的限制,这使得我的一些帖子有20多个修订,那么如何删除这些修订呢?

顺便说一下,我正在使用WPMU,并且有很多博客,那么如何删除我所有博客的WordPress修订版呢?

6 个回复
最合适的回答,由SO网友:markratledge 整理而成

这是一个更安全的查询,可以从Posteta和term\\u关系中删除相关条目,这与他的答案中的deathlocks查询不同。

将{id}更改为每个blog posts表的id。您可以组合此查询以一次运行所有post表,但请先在一个表上尝试此操作。我已经在单个WP安装上多次使用它。

DELETE a,b,c
FROM wp_{id}_posts a
LEFT JOIN wp_{id}_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_{id}_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = \'revision\'
运行之后,在phpmyadmin中优化数据库。

并将这一行添加到wp config的顶部附近。php以防止将来的修订:

define(\'WP_POST_REVISIONS\', 0);
或保存一个修订:

define(\'WP_POST_REVISIONS\', 1);

SO网友:darronz

还有一个插件,WP Optimize 可以帮你做到这一点

从网站:

WP Optimize是WordPress 2.9++数据库清理和优化工具。它不需要PhpMyAdmin来优化数据库表。

它允许您在几次单击中删除帖子修订、垃圾邮件队列中的评论、未经批准的评论。

SO网友:deathlock

要删除所有Wordpress修订,可以使用以下查询:

DELETE FROM wp_posts WHERE post_type = "revision";

SO网友:NickMcB

您还可以将此代码添加到主题的functions.php 文件:

if (!defined(\'WP_POST_REVISIONS\')) define(\'WP_POST_REVISIONS\', 3);
if (!defined(\'WP_POST_REVISIONS\')) define(\'WP_POST_REVISIONS\', false);
此代码检查WP_POST_REVISIONS 已在中设置限制wp-config.php, 如果没有,则会将参数传递给限制后期修订的函数。在上例中,员额仅限于3次修订。

当为不知道如何(或不想)添加代码的人构建主题时,这是一个很好的解决方案。

摘自wp-functions.com

SO网友:Ashin

您可以使用WP Sweep 用于清除后期修订的插件。激活插件后,转到工具»扫描以清理WordPress数据库。

SO网友:feli_x

谢谢你的回答,markratledge。关于{id}的语法中有些东西对我不起作用。我将{id}更改为4009,这是我的帖子id之一,但没有成功。我在上找到了解决方案https://dev-notes.eu/2017/11/manage-and-safely-delete-revisions-in-wordpress/

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_type = \'revision\';
这很好。

结束

相关推荐

WP Multisite Static Frontpage

我创建了一个多站点,我的问题如下:我试图为每个新站点显示一个默认静态页面。因此,当他们创建一个新网站时,他们会自动获得我创建的默认页面。这是他们唯一需要并控制的页面。此页面中只有widgetized区域,因此站点管理员可以通过将小部件添加到小部件区域来添加内容。他们无权自己创建帖子或页面。通过在wp admin/includes/upgrade中添加一段代码。php每当创建一个新站点时,该页面将由WP自动创建。但是,页面没有连接到包含html/php代码的模板,以显示它们添加的小部件。通常在WP中,您可以