固定链接(Permalink)是博客日志、分类及其他博客内容列表的永久URL。其他博客主人可以使用固定链接链接到你的文章上,你也可以在email中发送某篇日志的链接。所有日志的URL应为永久性、固定不变的-这就是所谓的固定链接。
固定链接类型
WordPress固定链接有三种基本类型:
默认类型:"不美观"
默认形式
http://example.com/?p=N
这里的N是Post ID号。它能够在所有服务器环境下使用,但这种形式的URL看起来不是很好看。
mod_rewrite类型:"美观的固定链接"
这些固定链接样式可谓浅显易懂、赏心悦目。虽然这种链接的格式多种多样,但最常见的形式还是
http://example.com/category/post-name/ 或 http://example.com/year/month/day/post-name
某些用户移除了日期元素(日,月,年)以使得永久链接格式变得更精简。
美观的固定链接可在以下环境中工作:
- 具有mod_rewrite模块的Apache网络服务器
- Microsoft IIS 7 + 带有URL Rewrite 1.1的网络服务器 + 作为FastCGI运行的模块与PHP5
- 使用404处理程序或 mod_rewrite 或 mod_magnet 的Lighttpd
PATHINFO:"近乎完美"
PATHINFO 固定链接形式跟mod_rewrite 固定链接形式很相像,只有一点不同:前者插入了 /index.php ,如下:
http://example.com/index.php/yyyy/mm/dd/post-name/
除此之外,PATHINFO就跟mod_rewrite 固定链接一样完美了,其灵活性也很相似。mod_rewrite 固定链接所能达到的效果,PATHINFO 固定链接通过/index.php部分也能做到。
有一个插件可以显示处于使用中的固定链接类型,以及WordPress使用的内部重写规则相关详细信息。
选择永久链接的结构
你可以在设置>固定链接面板(WordPress2.5之前的版本中是选项 >固定链接)中选择常见固定链接的结构,或是使用结构标签在"自定义结构"中输入自定的结构。
使用index.php/作为固定链接结构的开头来启用PATHINFO固定链接。
结构标签
你可以用下面这些标签来定制“美观”或者“接近美观”的固定链接。这里有一些注意事项:
- 确保用 %post_id% 或%postname% 结束结固定链接结构(如/%year%/%monthnum%/%day%/%postname%/)),这样每个固定链接都会指向一篇独立的日志。
- 考虑到运行上的问题,最好不要以分类、标签、作者或是日志名字段作为固定链接结构的开始。这是因为这些都是文本字段,如果以文本字段作为固定链接结构的起始部分,WordPress需要花更多时间来判断这是一个日志的URL还是页面的URL(页面URL总是使用“页面别名”作为URL),为了作为补偿,WordPress在数据库中存储了大量额外信息(信息数量之庞大直接影响到了具有多个页面的网站的运行)。因此,最好以年份或日志ID等数值型字段开始你的固定链接结构。参见WordPress测试者对这个问题的讨论。
%year%
日志发表的年份,四位数字,如2009
%monthnum%
日志发表的月份,如05
%day%
日志发表的日期,如28
%hour%
日志发表的时间(小时),如15
%minute%
日志发表的时间(分钟),如43
%second%
日志发表的时间(秒),如33
%postname%
日志标题的缩略版本(日志/页面编辑界面上的日志别名)。因此“This Is A Great Post!”在URI中会变成this-is-a-great-post。
%post_id%
日志的唯一ID,如423
%category%
分类名称的缩略版本(添加新分类/编辑界面上的分类别名)。嵌套的子分类会作为嵌套子目录出现在URI中。出于运行方面的考虑,不推荐以%category%作为固定链接的起始部分。
%tag%
标签名称的缩略版本(添加新标签/编辑界面上的标签别名)。出于运行方面的考虑,不推荐以%tag%作为固定链接的起始部分。
%author%
作者名称的缩略版本。
分类库和标签库
分类库和标签库是用在分类和标签存档URL中的前缀,类似于:
example.net/wp/category_base/category_name
example.net/wp/tag_base/tag_name
其默认值分别为分类和标签。你可以更改默认值,但不能将它们从URL中移除。
自定义固定链接