WordPress标签页固定连接以.html结尾

日期: 标签:WordPress教程
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

     昨天有网友给我留言,想让tag标签页的URL后面自动加html,比如 www.abc.com/tag/1,变成www.abc.com/tag/1.html。这或许是出于某种SEO目的,不过我觉得这样做没什么意义。

     实现这个目的的方法还是比较简单的,只是标签页是存档页,需要分页,分页后的链接形式为tag/1.html/page/2,就无法实现以.html为结尾,虽然我不懂什么SEO,但是我觉得这样的链接不好看。昨晚为了这个问题弄了一个晚上也没找到什么好的方法,这里就讲讲不太完美的方法吧,不过这里要说明的是,首先你的WP得使用固定链接。

一、链接转换代码

     使用文本编辑器打开当前主题目录下的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';
}

二、添加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/

三、参考内容

     WordPress Permalinks: Remove tag base and add the .html extension

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/wordpress-tag-url-end-in-html.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者。

40 条留言

点此留言
1 2 468
  1. realhood realhood

    关于这个请看下这篇文章
    http://www.92csz.com/41/1065.html
    我设置了没起作用
    本应该是xxx-3.html却变成了xxx.html/3
    代码里的href="xxx-3.html"的,点击却显示xxx.html/3的显示分页了
    能否移步看下,谢谢

  2. satiling

    IIS写的规则怎么写?楼主只写了apache的规则

  3. 小青蛙

    IS写的规则怎么写?楼主只写了apache的规则

  4. 终极召唤兽

    此法转换tag成功,但调出内容不对

  5. webster

    你好,想问下标签页面,如何设置www.xxx.com/tag_TAG名字这样的链接形式呢

1 2

发表留言