WordPress发布文章ID不连续纯代码解决方法

温馨提示:本文最后更新于2024-04-06 15:26:29,某些文章具有时效性,若有错误或已失效,请在下方留言。

WordPress因为历史修订版本(revision)、自动保存(autosave)和自动草稿(auto-draft)功能会非常讨厌的增加文章ID的数字,会造成连续的两篇文章,ID数值可能会相差很多,所以默认情况下发布的文章ID不是连续的,使用ID做为Permalink结构的用户将会看到一个地址越来越混乱的WordPress。让希望文章ID连续的人感到非常不舒服,尤其是使用了文章 ID 作为固定连接之后,每篇文章的 ID 并不连续,非常不好。

除了上述的这些可能造成文章ID不连续外,WordPress还会在“修改文章/页面、添加导航菜单、添加/新建页面、上传的图片/附件(上传新媒体文件)”等情况下占用ID,是造成文章 ID 不连续的罪魁祸首。这种占用没有太好的方法进行解决。

网上的解决方法一般是“禁止/关闭自动草稿及历史修订版本保持文章ID连续的方法”,这种方法能优化数据库,但并没有完全解决文章ID不连续的问题(有时会出现间隔一个ID不连续的问题)。还有,不在媒体库上传媒体、不建立页面等等,但这种方法会导致使用上的不便利,而且很有局限性。所以,本文将介绍一个完美解决WordPress文章ID不连续问题的两种方法。

方法一:重新排列不连续的文章ID

编辑当前主题目录下 functions.php 文件, 前添加以下PHP代码,这样如果你只是单纯发文章,不发页面,不添加菜单,不上传媒体的话,基本上此后的文章ID是连续的,而且不改变之前已经发布的文章ID,不影响SEO。

方法二:利用“别名”保持文章ID连续的方法

解决方案:利用别名,自动给文章设置一个别名,别名按顺序递增,然后把固定连接设置成别名。

一、批量设置别名

1、首先,如果你之前已经有文章了,需要根据顺序重新排列,设置一下别名,从 1 开始递增。批量设置别名:把下边的代码添加到当前主题目录下 functions.php 文件

2、然后,访问下边的地址,注意替换成你的域名(访问时需以管理员身份登录才会执行):

你的域名?post_id_continuous_query=yes

文章多的话网页加载会很慢,耐心等待加载完,加载好后,别名也就批量设置好了。

二、新文章自动设置别名

老文章设置好了,接下来就要给新文章自动设置别名了,只需要把下边的代码添加到到当前主题目录下 functions.php 文件

添加好后,每发布一篇文章,别名都会自动设置成当前发布文章的数量加 1.

三、修改固定链接

添加完代码之后,需要在后台的 “设置” → “固定连接” → “自定义结构”选项 里设置一下固定连接,把 ID 改成别名,也就是把固定连接里的 /%post_id%.html 改成/%postname%.html

PS:如果因为删除、更新或者其它原因导致文章的 “ID” 不连续了,可以使用上边的那个批量设置的代码重新归位。

注意事项

第二种设置别名方法慎用,如果你的网站已经大量收录的情况下肯定没有必要用这种方法。因为每篇文章的路径和ID都是固定的且已经被收录。如果修改了文章的路径,那么百度数据库存储的已经收录的文章则全部不能访问,就造成了大量的死链接。为了SEO考虑最好不要将ID重新排列,直接将文章别名设置为文章ID。如果你的网站是新网站或者文章收录量较少的情况下,修改即可。

删除或不上传不必要的附件

相信很多博友在发布文章的时候为了增加页面的丰富性都会同时上传插入一些附件,如图像、视频、音乐、下载文件等,(至少会在文章中插入相匹配的一些元素来丰富文章的阅读性)这些附件可以在WordPress管理后台中的媒体库看到,不同媒体对应了不同的文章。而这些媒体也是占据着文章ID造成文章ID不连续的原因之一,它们与文章都保存在同一个数据库表wp_posts中。如果我们特别追求文章的ID一定要完美无缺地连续,那最好的建议就是请不要在发布文章的时候上传/插入这些媒体,并请在WordPress管理后台中的媒体库删除之前上传的媒体(注意这个操作不只是删除记录,而且会删除你上传的文件),需要的话通过 FTP 重新上传这些附件不会占用ID的。尽量不要上传多余的或者用处不大的等不必要的附件即可。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
畅所欲言 抢沙发

请登录后发表评论

    暂无评论内容