如果我不得不面对这个问题,这个答案就是我解决问题的方法,它意味着不是答案,而是可能性之一。
我建议的所有操作都应该在数据库备份的开发/本地服务器上运行,而不是在生产或原始数据库上运行。
如果你有26000篇帖子,但是帖子id像4863166253,那么有无数的id没有被使用。
要解决此问题,您需要:
步骤1删除未使用的post ID。(垃圾帖子,修订版)
删除了孤立的帖子元条目删除了孤立的分类关系条目该范围有插件,但可以使用简单的原始SQL查询来完成。步骤2重置post ID,将其更改为从1开始。这可以使用PHP+MySQL的组合来实现:如果您以数组的形式检索post id列(例如,通过$wpdb->get_col()
), 数组键(增加1)将是当前id位于数组值中的帖子的新帖子id。
请注意,必须在以下位置更改帖子ID:
我建议您在使用分页结果的帖子子集上运行这样的例程,而不是在整个数千行上运行这样的例程。
步骤3
Set the AUTO_INCREMENT
index 在post表格上,以post计数+1。完成
在此过程结束时,较高的post id应该很容易在32位整数限制内。防止再次达到post限制(请参阅Codex).
移动较旧的帖子(2年?5年?)多站点环境中的单独博客,例如。site1-archive.example.com
对于中的帖子site1.example.com
.
这可以使用带有日期范围选项的WordPress exporter来完成。
如果您计划这样做,那么在重置帖子id之前(上面的第2步)这样做是否更好,这样两个博客都可以有更低的帖子id。
当然,在这之后,您还应该制定一种方法,将归档的URL重定向到新的URL。