WordPress 默认情况下发布的文章 ID 不是连续的,是因为 WordPress 自动草稿、文章修订版、页面、菜单、媒体等功能都要占用 ID,所以发布的文章 ID 一般是不连续的。今天为大家分享一下解决文章链接地址不连续的几种通用方法。
实现方式
方法一、列别名法
1、固定链接设置
在后台固定链接设置中,将文章固定链接设置为/%postname%.html的形式,通常是 /%post_id%.html.
2、修改文章别名
写文章时,将文章别名修改为数字,和上一篇文章保持连续。
3、历史数据处理
对于历史数据(已经发布的文章),可以使用上一步的方法逐一修改文章别名。如果文章数量比较多的话,可以使用 SQL 语句批量修改。
# 批量将所有已经发布了的文章的列别名修改为 ID 值 update wp_posts set post_name = id where post_type = 'post' and post_status = 'publish';
优点:操作简单,容易理解,适合小白。
缺点:没有充分利用 ID 主键的特性(唯一性与持久性),更换主题后可能会反弹,故不推荐此方法。
缺点:没有充分利用 ID 主键的特性(唯一性与持久性),更换主题后可能会反弹,故不推荐此方法。
方法二、修改数据库法
通过 SQL 语句修改数据库中相关表中的数据。比如文章原 ID 为 21782,我们想修改为 201,执行下述 SQL 语句:
# 修改文章 ID update wp_posts set id = 201 where id = 21782; # 修改文章标签及类别 update wp_term_relationships set object_id = 201 where object_id = 21782; # 修改文章关联属性,比如浏览量 update wp_postmeta set post_id = 201 where post_id = 21782; # 修改文章关联评论 update wp_comments set comment_post_id = 201 where comment_post_id = 21782;
优点:使用 ID 作为文章标识,充分利用了 ID 的特有属性,即使更换主题也不会产生任何问题。
缺点:每次发布新文章时都需要手动操作数据库(可以通过插件解决),推荐使用插件(插件只需要实现上述四个 SQL 即可,有需要的朋友可以在下方留言)。
缺点:每次发布新文章时都需要手动操作数据库(可以通过插件解决),推荐使用插件(插件只需要实现上述四个 SQL 即可,有需要的朋友可以在下方留言)。
结束语
之前尝试过禁用文章修订的方式,但是经常会出现丢失内容的现象。本文介绍了两种方法,其中方法一使用的人数较多,但本文不推荐,可以使用插件来实现方法二的功能。如果有任何意见或建议,欢迎在下方评论处留言。
本文已通过「原本」原创作品认证,转载请注明文章出处及链接。