wordpress博客网站的文章id一下飚到三万了,文章数也不够1000这个该怎么搞?

6个月前 (11-16) 0 点赞 0 收藏 0 评论 5 已阅读

部分用户假象的WordPress文章id

你新建了一个WordPress网站,设置了几个静态页面,设置了一个主菜单,发布了第一篇文章。咦,第一篇文章的id不应该是1吗,我这篇怎么是8?

先不管了,这篇文章修改保存了几下,接下去发布了第二篇文章,你猜想这下文章id应该是9了吧。又不如你所愿,第二篇文章的id居然是16???

WordPress数据库的文章id逻辑

用一张名为wp_posts的主表保存网站的主体信息,用户新建了网站,这张表就被自动生成了。用户创建了“首页”、“关于”、“假如”、“联系”四个静态页面,但他删除了“假如”页面。这张表的前四个id就是这四个页面,但是因为删除了第三个页面,所以剩下的三个页面的id分别是1、2、4。

接下来用户在菜单管理界面新建了一个菜单,把这3个页面都放到菜单里了,于是又被安排了5、6、7这3个id去对应这3个菜单项。

然后用户写了一篇文章,保存后这篇文章的id就是8。用户对这篇文章进行了3次修改,并且还在文章里添加了4张插图,这些修改和插入的图片又生成了7个id。

用户写了第二篇文章,id就得是16了。

简化解释表结构:(id - 类型 - 名称 - 状态)
1 - page - 首页 - 发布
2 - page - 关于 - 发布
4 - page - 联系 - 发布
5 - nav_menu_item - 首页 - 发布
6 - nav_menu_itemaa - 关于 - 发布
7 - nav_menu_itemaa - 联系 - 发布
8 - post - 演员的自我修养 - 发布
9 - post - 演员的自我修养 - 修订
10 - attachment - 图片1 - 发布
11 - attachment - 图片2 - 发布
12 - post - 演员的自我修养 - 修订
13 - attachment - 图片3 - 发布
14 - post - 演员的自我修养 - 修订
15 - attachment - 图片4 - 发布
16 - post - 建设四个现代化 - 发布

......


实际上除了附件、修订、菜单,很多插件的数据类型甚至设置项也会在posts表中占用大量的id。如果插件比较多,那id数字大是很正常的。

那么这个情况可以避免吗?我可以把文章id修改成连续的吗?建议不要这么做。这是一种人类强迫症症状,对程序来说,这更像是人类大脑自己产生的bug,而不是WordPress程序的问题。假如强行修改这些id,那么你上传的附件和那些文章的修订历史记录就对应不上原文了,反而造成数据的混乱。并且如果你的页面和插件做中有自定义字段、文章还做了一些分类和标签设置,那么这些属性信息也将找不到归属的文章了。

网上有其他博主整理过一些修改文章id,强迫他们连续一贯的代码,我看了下,都有很大的局限性。这些代码只能处理我上面举的例子,但无法处理很多插件带来的更复杂的数据结构。对于大部分WordPress网站,运行这些代码会对网站数据带来毁灭性破坏,强烈不建议这么做。

如果如本问题所述网站的文章总数量是几百,运行一段时间,新文章id到达几万并不是什么可怕的数字,只要程序优化得当,并不会影响网站运行速度。假如你的网站是一个拥有几万篇文章的大站,在这个数量级下,通过插件或者自己写查询删除全部的修订记录(post_type为revision的数据),那通常确实可以对性能有一个明显的提升。但是千万不要试图把删掉的id强行接续起来,如果不连续的id使你很难受,那我只能建议你不要使用WordPress了。

wordpress博客网站的文章id一下飚到三万了,文章数也不够1000这个该怎么搞?

本文收录在
0评论

登录

忘记密码 ?

切换登录

注册