我已经运行Wordpress多年了,大约有26000个帖子。
在某些时候,我的帖子ID已经超过了32位整数,现在我只能在64位系统上使用Wordpress。
我看到ID为4863166253的帖子。
我想将主机切换到低功耗服务器,例如32位的rapiberry pi。
有什么方法可以重置帖子ID,使它们都低于20亿个吗?
您可以在此处阅读我的Wordpress错误报告
谢谢。
我已经运行Wordpress多年了,大约有26000个帖子。
在某些时候,我的帖子ID已经超过了32位整数,现在我只能在64位系统上使用Wordpress。
我看到ID为4863166253的帖子。
我想将主机切换到低功耗服务器,例如32位的rapiberry pi。
有什么方法可以重置帖子ID,使它们都低于20亿个吗?
您可以在此处阅读我的Wordpress错误报告
谢谢。
Answers:
这个答案是,如果我不得不面对它,我会采取解决问题的方式,它的意思是没有的答案,但其中一种可能性。
我建议的所有操作都应在数据库备份的开发/本地服务器上运行,而不是在生产环境或原始数据库上运行。
如果您有26,000个帖子,但帖子ID如4,863,166,253,则有数十亿个ID未被使用。
要解决此问题,您需要:
有适用于范围的插件,但可以使用简单的原始SQL查询来完成。
重置帖子ID,将其更改为从1开始。这可以使用PHP + MySQL的组合来完成:如果您将帖子ID列检索为数组(例如通过$wpdb->get_col()
),则数组键(增加1)将是当前ID位于数组值中的帖子。
请注意,帖子ID必须在以下位置进行更改:
我建议您使用分页结果在帖子的子集上而不是在成千上万的行上运行这样的例程。
将AUTO_INCREMENT
发布表上的索引设置为发布计数+1。
在此过程结束时,较高的帖子ID应该很容易位于32位整数限制之内。
禁用后期修订或限制其数量(请参阅Codex)。
将旧帖子(2岁?5?)到一个单独的博客上多站点环境,比如site1-archive.example.com
在帖子site1.example.com
。
可以使用带有日期范围选项的WordPress导出程序来完成。
如果您打算这样做,最好在重置帖子ID(上面的步骤2)之前完成,这样两个博客都可以使用较低的帖子ID。
当然,在那之后,您还应该采用一种方法将归档的帖子网址重定向到新的网址。