搞定WordPress的Permalinks

WordPress的Permalinks还是比较好用的,只需要在Options->Permalinks里设置一个/post/%post_id%,基本就可以了,但它的Permalinks样式偶不喜欢,偶喜欢的样式是:

单篇文章

  • domain.tld/post/post_id

存档

  • domain.tld/archive/year
  • domain.tld/archive/year/month
  • domain.tld/archive/year/month/day (这个其实根本用不着)

分类

  • domain.tld/category/category_name

分页

  • domain.tld/page/page_number
  • domain.tld/archive/year/month/page/page_number
  • domain.tld/category/category_name/page/pagenumber

作者 其实也没啥用

  • domain.tld/author/author_name

feeds

  • domain.tld/feed
  • domain.tld/feed/rss

Permalink的样式固定以后,即使以后再更换其它的Blog系统,也按照这个样式来设定,加上把数据也导过去,基本上能够保证用户使用以前的链接也能正常访问新系统的内容。

WordPress生成Permalink的程序主要在wp-includes\classes.php里,有一个WP_Rewrite类。

如果要修改存档的Permalink,只要找到function get_date_permastruct()部分,在靠后的位置有一句

$this->date_structure = $front . $date_endian;

在它前面加上一句

$front = '/archive/';

就可以了,其余的也类似:

$this->front = '/author/';
$this->author_structure = $this->front . $this->author_base . '/%author%';
$this->category_structure .= '%category%';
//下面这一句是增加的
$this->category_structure = '/category/%category%';

然后再修改.htaccess文件,修改相应的规则就可以了,由于只是简单的替换了一下前面的固定单词,所以很好修改的。如果没有.htaccess文件,在Options里设置一下Permalinks就会自动生成了。