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. 大华 大华

    去试试,谢谢~~

  2. 行畔博客 行畔博客

    恩,good way

  3. sein

    tag页翻页的考虑呢?比如 https://www.ludou.org/tag/wordpress/2,可能就是 https://www.ludou.org/tag/wordpress.html/2 了

  4. OneDou OneDou

    文章的链接后缀从固定链接自定义以html结尾了,其他的就没管。

  5. 倡萌 倡萌

    其实这是哪门子的SEO 呵呵呵 有些人就是闲着没没事 不好好弄内容 天天SEO的 辛苦老大了

    • Ludou

      @倡萌 闲着没事,研究一下WordPress也未尝不可。

  6. OMG我的游戏 OMG我的游戏

    确实没什么意义,只是看起来好看而已罢了

  7. 向日葵媒体设计

    的确没什么意思。。。

  8. 西门 西门

    那帖子我看了,真无聊

  9. Firm Firm

    伤感的固定链接,建站2年后想改,改得都累死了。。

  10. fengkox

    如果想在页面文章底部做一个 反馈问题的功能,能做到吗?比如说谋篇文章出问题了,但文章数太多。只能靠用户发现问题然后反馈看不了 或是其他问题。假如文章中有视频看不到或是图片显示不到,就可以点击文章底部的 反馈给站长。非注册用户都能反馈的,可能还需要验证码吧? 博主能帮助下吗?

    • Ludou

      @fengkox 反馈问题可以换个角度,弄个链接加#标识,点击定位到评论框,用户就知道怎么做了。如反馈问题

  11. 小小 小小

    有时间折腾一下!

  12. fengkox

    问题是对于关闭了评论功能的,就不能实现了。

  13. 君说 君说

    果断回访。嘿嘿。这个固定链接我用的就是自定义的,html结尾的。

  14. Reuel Reuel

    想了一下,example.com/tag:XX/
    这样就行了吧,标签这个东西时候都会跟着数据而改变,改成.html从思想上来讲,就已经不自然了。

  15. yueyueniao yueyueniao

    我跟你这个网页url一样,就是中间多了个日期格式,而且是“/”结尾, 我怎么加html在末尾呢

    • Ludou

      @yueyueniao 固定链接,选择自定义结构,后面加.html

      • 月月鸟 月月鸟

        @Ludou 噢,好的,谢谢!

  16. Ludou fans

    由于看了很多文章,感觉Ludou好像很厉害很了解WP,没有实现不了的功能,因此就大胆的在这提出Ludou
    能否帮我们下。我们也知道一些插件是站点可以实现,但是因为有些特定需要,所以一定要让用户在本站注册成订阅者或者投稿者,在后台才可以看见自己收藏文章有哪些,

    不知道Ludou大神 愿不愿意。。。

  17. Ludou fans

    就是这样的 不过他开发不出来

  18. haran

    新手求教:
    在调用文章发布日期时使用<?php the_date(get_option('dateformat')); ?>出现如下问题:
    1、当一个页面中存在同一天发布的两篇文章时,只有最新的一篇才会显示“文章发布日期”,而较老的那篇就没有显示。
    2、问题延伸:同时调用the_date和the_time,最新的一篇才会显示“文章发布日期及时间”,较老的那篇只会显示“文章发布时间”,同样不显示“文章发布日期”

    • Ludou

      @haran 见以下文档中的特殊说明:http://codex.wordpress.org/Function_Reference/the_date

      SPECIAL NOTE: When there are multiple posts on a page published under the SAME DAY, the_date() only displays the date for the first post (that is, the first instance of the_date()).

      你可以使用 get_the_date() 函数代替:
      <?php echo get_the_date(get_option('dateformat')); ?>

  19. 小说吧 小说吧

    写的不错 学些了!!楼主的博客主题制作教程多发布点呗!!呵呵!!

  20. 侯永禄 侯永禄

    其实我猜他并不是要达到SEO的目的,而是有一款插件(好像叫cos-html-cache)只能缓存以html结尾的页面。那款插件其实挺不错的。不过想请教一个问题,如何给搜索结果也加上html?修改上面的就可以了吗?

  21. padshuo padshuo

    文章的链接后缀从固定链接自定义以html结尾

  22. codee codee

    据说Html有利于SEO

  23. 偶看 偶看

    学习下,不过标签这玩意还真不太需要这个。

  24. realhood realhood

    请老大帮个忙 写个htaccess 规则,那些规则实在不懂,弄了好久还是搞不出来,不得不求助老大了
    我装了一个bbpress,静态链接是直接显示标题名称的,生成的链接就是那种类似乱码似的,太繁琐。
    论坛总连接
    http://127.0.0.1/?post_type=forum
    静态化是http://127.0.0.1/forums

    单个板块链接
    http://127.0.0.1/?forum=板块名称
    静态化后是http://127.0.0.1/forums/slug/板块名称

    以上两个并不影响,因为名称自己可以该成英文的自定义链接

    头疼的是帖子链接,
    帖子链接:http://127.0.0.1/?topic=帖子名称
    显示成这样了:http://127.0.0.1/?topic=%E4%B8%BB%E9%A2%984-%E7%BD%AE%E9%A1%B6-%E7%9A%84
    静态化的结果是:http://127.0.0.1/forums/topic/板块名称/帖子名称
    同样是乱码的

    求助问题是:
    请老大帮忙写个htaccess 规则
    将帖子链接静态化成http://127.0.0.1/forums/topic/板块名称/帖子id

    谢谢了

  25. Free Make Money Free Make Money

    改一次固定链接被百度拨一次毛,伤不起。

1 2

回复给 realhood 取消留言