在我网站上的数百篇帖子中,一个特定的字符串需要被另一个字符串替换,但这个替换只能在发布的帖子上执行,而不能在修订版上执行。
我找到的插件(search&replace、better search replace等)没有此功能,因此必须使用phpMyAdmin完成这项工作。这可以通过此查询完成
UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`, \'tobereplaced\', \'replacement\')
WHERE post_type=\'post\' AND post_status=\'publish\'
问题是,这样做不会编辑最新版本,因此在wordpress“比较修订”工具中,不会显示已编辑的帖子(包含替换内容)。
这意味着,如果一篇文章通过phpMyAdmin按顺序编辑,比如5次,那么前4次编辑将“丢失”,因为不会为它们创建修订。
例如
我创建了一篇标题为abc
其内容只是1
, 修订框(在wordpress上)为空,然后使用wordpress编辑器替换1
具有2
, “修订”框现在显示两个修订:最近的一个包含2
另一个包含1
然后仍然使用wordpress编辑器,我将其替换为2
具有3
, 修订框现在显示三个修订:前两个加上另一个包含3
现在的情况就是这样
<然后使用phpMyAdmin查询替换
3
具有
4
, 没有新的修订,然后仍然使用phpMyAdmin查询I replace
4
具有
5
, 没有新的修订,然后使用wordpress编辑器替换
5
具有
6
, 修订框现在显示四个修订:前三个加上另一个包含
6
现在的情况就是这样
因此,由于没有为创建修订4
和5
, 该帖子的编辑历史记录有一个漏洞。
为了解决这个问题,我想在使用phpMyAdmin时,不仅应该编辑已发布的帖子,还应该编辑最新的修订。在数据库中,有一个值仅由发布的帖子和最新版本共享,它是post_modified
日期
是否可以编写只更新已发布帖子和最新修订的查询?这有用还是有更好的解决方法?