去除分类页链接的category/字段以及修复nginx下分类页分页失效

By
WP札记

在用网站管理工具的时候,遇到这样一个问题:抓取不到(404)页面暴增。按照谷歌的罗列挨个看来,最多出现的是“axiu.me/cat-name/page/2”(cat-name为分类的名称)这样的结构。但是据我所知,所有的wordpress博客,默认分类目录都是 axiu.me/category/cat-name 这样的结构。并且在后台的固定链接里,只能修改category为想要的内容,例如cate、cat等,但是无法删除。这可让我不知道怎么整。

问了问zww大叔,他说我目前使用的文章固定链接和目录结构不太好。逻辑结构上,category/cat-name并不简单直观。例如我博客设置的固定链接为: axiu.me/cat-name/post-title 这样上一层(分类目录)就应该为 axiu.me/cat-name

但是事实不是这样的,域名到cat-name之间必须要有个东西区别,wordpress叫它做“category base”。如何删除这个category base呢?万能的filter解决了这个问题。

1.删除分类链接中的category/字段

另外,由于主机环境的问题(nginx),我的固定链接设置/%category%/%postname%/ 出现了问题:axiu.me/cat-nameaxiu.me/category/cat-name同时起效,并且都被收录(这可不是什么好事),唯一的区别是,axiu.me/cat-name下如果有文章分页的话,进入分页页面,会404。

跟zww大叔商量了一上午,最后搜到了个这个办法(方法摘自插件Category Pagination Fix,感谢原作者):

2.修复固定链接为/%category%/%postname%/下分类页面分页失效(404)的问题

以上代码需要复制到主题目录下的functions.php文件中才能生效。

通过以上两个步骤,去掉了分类链接中的category字段,并且使nginx下分类目录的分页有效。也算达到了预期的目的。

0

Comments: 43

  1. 发现你的博客 google收录很好啊,每次搜索都能进来
    :?:
    http://www.52wordpress.net/archives/2052.html

    我还是用过插件吧 :twisted:

    2012年10月01日
  2. 错了 是百度 收录 :arrow:

    2012年10月01日
  3. 在谷歌某帮助页面(不记得网址了)看到,说404不会影响网站收录,于是懒惰的我就放心的不管了

    2013年03月12日
    • @小蝴蝶 收录倒不怕啥,就是用户点着点着,就404了这不太好~~

      @venmax 2013年03月13日
    • @xiuxiu 话说wp分页太脆弱 query动一下 就可能出现分页404

      2013年03月13日
    • @小蝴蝶 呃……这个不是wp的错,apache下没问题,nginx就不行,所以要用filter来处理啦。query出404主要是语句不太严谨导致的吧,不能怪wp啊

      @venmax 2013年03月13日
    • @xiuxiu 是指更改默认query啦,就是那种无视分页设置的,即使reset query也不行,分页总是会错误,不过确实跟文中这个问题无关 :???:

      2013年03月13日
    • @小蝴蝶 我之前碰到过分页错误的问题,最后发现分页要放在query后面……

      @venmax 2013年03月13日
    • @axiu 话说我今天也准备换链接结构,去掉category base用301不就行了?

      2013年04月02日
    • @小蝴蝶 我这个是主机问题,而且301是临时用的治标不治本

      @venmax 2013年04月03日
  4. :?: :?: 直接用分页插件都不行???

    2013年03月13日
  5. ningx环境,用上面的代码,分类目录都404.

    2015年05月02日

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

:razz: