大家可能都知道,通过设置固定链接格式,可将 wordpress 日志 URL 设置成伪静态的形式。
同样通过之前介绍的::Custom Post Type Permalinks插件,可以将自定义文章类型 URL 设置成伪静态,那么分类、页面及标签如何设置为伪静态呢?
这个问题已经有人为我们解决了,以固定链接格式/%postname%.html 为例。
单独为页面添加.html 后缀
安装.html on PAGES 插件实现,启用插件后无需任何设置;
分类及页面同时添加.html 后缀
需要注意的是,启用插件后还需要到后台固定链接设置中,重新保存一下设置,否则会跳转到 404 页面,如果不成功可以先删除空间根目录的.htaccess 文件,之后保存会自动生成新的。
另外,安装插件后可能会造成日志分页翻页错误……
标签页添加.html 后缀
想让 tag 标签页的 URL 后面自动家 html,如何 www.abc.com/1,变成 www.abc.com/1.html。实现这个目的方法还是比较简单的,只是标签页是存档也,需要分页,分页后的链接形式为 tag/1.html/page/2,就无法实现以.html 为结尾,虽然我不懂什么 SEO,但是我觉得这样的链接不好看。昨晚为了这个问题弄了一个晚上也没找到什么好的方法,这里就讲讲不太完美的方法吧。不过这里要说明的是,首先你的 WP 的使用固定链接。
1、链接转换代码
使用文本编辑器打开当前主题目录下的 functions.php,添加以下 php 代码:
// applied when calling get_tag_link()
add_filter(‘tag_link’, ‘ludou_html_tag_link’, 10, 2);
/**
* tag 页链接转换,将 /tag/tag-name/ 转成 /tag/tag-name.html
*/
function ludou_html_tag_link($tag_link, $tag_id) {
return rtrim($tag_link, ‘/’) . ‘.html’;
}
2、添加 rewrite 规则
使用文本编辑器打开博客根目录下的.htaccess,也就是存放你的 WordPress 固定链接重写规则的文件。在 RewriteBase/下一行添加以下代码:
RewriteRule ^tag/(.+)\.html$ /index.php?tag=$1 [L]
RewriteRule ^tag/(.+)\.html/page/([0-9]+)$ /index.php?tag=$1&paged=$2 [L]
需要注意的是,如果你的标签页 URL 不是以 tag 开头,那么你需要将以上代码中的 tag 改成你的标签前缀。另外.htaccess 中不一定有 RewriteBase/这一行代码,例如你将 wordpress 安装在子目录 wp,那么这一行代码可能就是这样 RewriteBase/wp/。
参考: