终于不用纠结 WordPress 文章ID了:你也可以

» 2013-02-02 WordPress 127条评论

细心的朋友可能会发现,我博客最近的文章链接变成“https://zww.me/文章名.html”,而且老文章的链接方式“https://zww.me/archives/文章ID”还是正常工作。

起因:

由于历史原因,我使用了“https://zww.me/archives/文章ID”的固定链接模式,加上当年不懂事,让文章ID早早串上10000+。

纠结:

一直对不断上升的文章ID耿耿于怀,加上新版的 WordPress 无法禁止“自动草稿”(Auto Draft),还有“上传图片占用ID”、“自定义菜单占用ID”等等,所以你要绝对控制文章ID是不可能的,即使实现你也感觉“瞎折腾”。于是我就想把链接改为“文章名”模式,而不是“文章ID”。

尝试:

其实我去年就尝试过几次,但最终不完美而失败。前几天想放弃 FTP 上传图片方式,就再次尝试把博客文章固定链接改为 https://zww.me/文章名.html,在不断纠结+努力+折腾下,终于解决了。

方法:

因为我博客的特殊性,或者说个人爱好,下面说的内容方法不按照我博客的方式来说明。而是根据把固定链接模式“http://你的域名/archives/%post_id%”改为“http://你的域名/archives/%postname%”来说明。

其实原理很简单:就是把固定链接改为“http://你的域名/archives/%postname%”,然后用 SQL 语句把所有文章的“post_name”改为“ID”

步骤:

注意:操作数据库前一定要先备份!!!

1. 批量把 post 的 post_name 改为 ID 的 SQL 语句:去 phpmyadmin 》选择你的数据库 》SQL
(注:下面这句会把 page 的 post_name 也会改为 ID,要排除可以参考 SQL 手册,我是用原始方法人工改那几个页面。。。)

UPDATE wp_posts SET post_name = REPLACE(post_name, post_name, ID)

2. 把 WP 的固定链接(WP后台 》设置 》固定链接)改为“http://你的域名/archives/%postname%”

用了文章名,再也不用担心我的ID了!

--------------- <—— 这是分割线

简单说说我博客使用的方法,具体不写了,太麻烦,而且需要懂点 WP 相关函数。

1. 因为我博客以前的链接是这样的:https://zww.me/archives/文章ID,于是我定义了一个新的 post style:archives

2. 然后定义 archives 类型的文章链接模式为 https://zww.me/archives/%postname%

3. 用 SQL 批量把文章的 post 类型改为 archives(表 wp_post)

4. 给 archives 定义新的分类和标签:archives_category 和 archives_tag

5. 把原来的分类和标签的 taxonomy 改为 archives_category 和 archives_tag(表 wp_term_taxonomy)

6. 把 WP 的固定链接改为:https://zww.me/%postname%.html

7. 把主题的调用函数通通要更改一遍(如首页、分类页、文章分类、标签、热门标签、相关文章、最新评论、最新文章、热门文章、最近更新的文章等等),确保可以调用到 archives 类型的文章

博客是不是很像重生?

130202-new-rewrite

折腾吧。

zww
or
oooo

“终于不用纠结 WordPress 文章ID了:你也可以”有127条评论

  1. bbis says:

    这个工作量大。SQL语句不会用~
    我的一开始就是这种格式,文章链接比较简短

    1. zwwooooo says:

      @bbis
      工作量不大,倒是怕出错。

  2. airoschou says:

    那你要重定向了

  3. 所谓刚子 says:

    我也是手动翻译文章标题的 坑爹啊。。 翻译软件一般都不能很好的解析到心中啊

    1. zwwooooo says:

      @所谓刚子
      找几个关键词翻译下就行了。

    2. @zwwooooo
      不上后台写的表示很麻烦╮(╯-╰)╭

    3. zwwooooo says:

      @凤翼天堂
      哈哈,那就别折腾

  4. 新版无法禁止自动草稿? :arrow:

    1. @凤翼天堂 要修改程序文件才能实现id基本连续

    2. zwwooooo says:

      @凤翼天堂
      是自动草稿,不是自动修订、自动保存等。

    3. @zwwooooo
      =A=有什么区别么

    4. zwwooooo says:

      @凤翼天堂
      有,自动草稿是:你一点新建文章就会生成占用了id,即使你只是点了新建文章就推出,这个无法简单禁止,需要修改源文件才能再利用此ID

  5. 淘宝屋 says:

    这个貌似 很有难度有点晕了

    1. zwwooooo says:

      @淘宝屋
      这个主要是要小心

  6. 大发 says:

    id.html傻瓜方便不纠结。。

    1. zwwooooo says:

      @大发
      这个当然。

  7. 集趣 says:

    改成postname的方式是为了养眼吗?

    1. zwwooooo says:

      @集趣
      是为了此文章标题。

  8. 我擦,这样好麻烦的说。。。。

  9. postname网址会好长

    1. zwwooooo says:

      @牛逼思维
      长无所谓,要控制级数

  10. 外贸SEO says:

    :cry: 完蛋了我就是用的ID现在感觉改了好像很复杂的样子。先去折腾折腾。

    1. zwwooooo says:

      @外贸SEO
      你可以按照我说的方法试试,注意先备份。

  11. 咚门 says:

    不看还不知道,我的居然上升到2000+了,是不是也该折腾下了。。。

    1. zwwooooo says:

      @咚门
      还是不纠结好,随便它升

  12. wen says:

    老大我说的是你买的哪的网站的vPS,我也去整个看看,我用的yard的,尼玛太慢。。。。。

    1. zwwooooo says:

      @wen
      看footer

  13. xuzizzz says:

    也不用ID啦~ :mrgreen:

    1. zwwooooo says:

      @xuzizzz
      还是不用了,看着疯长的id总是纠结

  14. 牧风 says:

    手动翻译 :mrgreen:

    1. zwwooooo says:

      @牧风
      英文差压力

  15. airoschou says:

    搜索引擎收录的以前链接貌似不能自动更新的吧?

    1. zwwooooo says:

      @airoschou
      不需要更新,你没看我文章内容……

  16. 誊武 says:

    我勒个去。。。不过换了之后,。会很长的。。好丑

    1. zwwooooo says:

      @誊武
      每个人在意的地方不同

  17. 郑永 says:

    现在我那里更新一篇越来越吃力了。。

    1. zwwooooo says:

      @郑永
      你的要求太高了

  18. 我感觉你没有必要在URL的后面加上.html了。直接用“http://你的域名/%postname%”就可以了,设置起来也简单,在固定链接那里的自定义设置里就搞定了。

    现在都强调URL越短越好,加个html只是表示做了伪静态,不加.html结尾也一样是伪静态,无论怎么个伪静态都不可能是真正的静态。个人意见,仅供参考

    1. zwwooooo says:

      @网赚红宝书
      无所谓啦,我没考虑 s1o

  19. 额,你这里还有广告位吗?另外就是定制wordpress模板是什么价格呢?

    1. zwwooooo says:

      @网赚红宝书
      图片位置木有了....定制模版?要你来设计图哦,具体价格要看到设计图和功能需求才能给你.

    2. @zwwooooo
      那还有什么广告位呢?模板的事情再说好了

    3. zwwooooo says:

      @网赚红宝书
      Only 一个链接位置了,满员了。

  20. jiechic says:

    恩,我也早搞成文章名了,,文章id是挺蛋疼的。

    1. zwwooooo says:

      @jiechic
      我一直想改,但重新收录代价很高,所以一直拖着

回复给 大发 ¬
取消回复

昵称 *

网址

B em del U Link Code Quote