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就会自动生成了。
你好 想请问一下 因为自己正在修正Permalinks照上方教学遇到了些问题 在修改classes.php时找不到上方所写的↓↓是要这两句一起加吗?
$this->category_structure .= ‘%category%’; //下面这一句是增加的 $this->category_structure = ‘/category/%category%’;
还是classes.php里没$this->category_structure .= ‘%category%’;这句就不用加$this->category_structure = ‘/category/%category%’;
ps.我是wordpress2使用者
另外,想请问.htaccess要怎么修改~大感谢
$this->category_structure = ‘/category/%category%’; 这句覆盖了上面那句$this->category_structure .= ‘%category%’; 由于我的修改没有直接使用wp2的功能,而是自己根据wp的直接参数类型作的修改 所以可能和wp本身具备的功能设置方法略有不同
另外关于.htaccess,建议你看一下apache文档中 mod_rewrite部分的规则,应该就会明白许多了。
啊…不行~也许是虚拟空间mod_rewrite的问题 总之非常感谢您的回答 🙂
请问,如果以前的文章都是采用缺省的方式,采用动态Url,现在可不可以直接转成永久链接?怎么转?谢谢:)
WordPress本身就支持这功能,所以就是修改设置的事了。 后台Settings里面专门有Permalink这一项,有预设的方式, 这篇文章和我的方法可能都比较旧了。