WordPress给页面URL添加.html后缀

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

     在WordPress中,尽管你把固定链接设置成 /%postname%.html 这种形式,也只能给文章的URL添加 .html 后缀,其余页面的URL都是没有 .html 后缀的。上次我们介绍了如何给标签页添加.html后缀,这次我们讲讲如何给WordPress博客的页面URL添加.html后缀。

使用插件

     如果想给页面URL添加 .html 后缀,可以使用使用这款插件:.html on PAGES

     如果想给页面URL添加 .php 后缀,可以使用使用这款插件:.php on PAGES

     露兜亲测,两款插件均可以在WordPress 3.5下正常工作。

.html .php on PAGES

特定页面不添加后缀

     .html on PAGES 插件会给所有页面都添加上.html后缀,但是问题又来了,如果我们不想给 sitemap 页面URL添加 .html 后缀,保持 /sitemap,而不是 /sitemap.html,那么怎么办呢?如果你有这个需求,可以用文本编辑器打开插件目录下的html-on-pages.php,查找:

add_filter('user_trailingslashit', 'no_page_slash',66,2);

将其替换成:

add_filter('page_link', 'blog_permalinks_page_link', 10, 2);
function blog_permalinks_page_link($permalink, $page) {
  $pos = strpos($permalink, "/sitemap.html");
  if ($pos !== false) {
    $permalink = str_replace("/sitemap.html", "/sitemap", $permalink);
  }
  return $permalink;
}

add_filter('user_trailingslashit', 'no_page_slash', 66, 2);

接着查找:

function html_page_permalink() {

将其替换成:

function html_page_permalink() {
  $string = $_SERVER['REQUEST_URI'];
  $pos = strpos($string, "/sitemap.html");
  if ($pos !== false) {
    switch_to_blog(1); //We are using WPMU if you are not you won't need this line.
    wp_redirect(get_option('home') . str_replace('/sitemap.html', '/sitemap', $string), 301);
    exit();
  }
  else {
    $pos = strpos($string, "/sitemap");
    if ($pos !== false) {
      $_SERVER['REQUEST_URI'] = str_replace("/sitemap", "/sitemap.html", $string);
      global $wp;
      $wp->parse_request();
    }
  }

     好了,修改就到此结束。你可以根据把代码中的 sitemap 改成你的页面别名。

参考文章

Add .html & .php to the URL of WordPress PAGES (not Posts)

Change WordPress permalinks on pages to have a .html extension

-- 完 --

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

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

39 条留言

点此留言
  1. xiaomingtt

    文章有后缀就行了,其他的就没有必要了

  2. heasily

    大哥,请问wordpress如何获取文章最多的前3个用户

  3. Ludou

    @heasily <?php wp_list_authors('optioncount=1&orderby=post_count&order=DESC&number=3'); ?>

    或者

    <?php wp_list_authors('orderby=post_count&order=DESC&number=3'); ?>

  4. 冠宇

    @Ludou 图片怎么挂了

  5. Ludou

    @冠宇 刷新一下应该没什么问题。

  6. 小时候爱玩

    博主的博客不错,请教下,贵博的评分是自写的函数还是用哪个插件?

  7. Ludou

    @小时候爱玩 wp-postratings

  8. 小时候爱玩

    @Ludou 谢谢

  9. 小时候爱玩

    @Ludou 贵站的评论是AJAX的,是怎么实现这个效果的啊?

  10. Ludou

    @小时候爱玩 谷歌搜索:wordpress 评论 ajax

  11. bbis

    这个评论框ID是不是更改了?

  12. Ludou

    @bbis 是的

  13. Laycher

    前来支持。哇咔咔。

  14. heasily

    大哥你是用notepad++的吗?请问如何显示所有打开的文件标签,有时候打开的文件太多的时候,切换标签好麻烦

  15. Ludou

    @heasily 我用的是UltraEdit。
    一般这类设置在首选项中有:http://t.cn/zjTBzg7

  16. 小时候爱玩

    博主,为啥我启用了评分插件,但是为啥页面不能正常显示出来呢,显示loading….

  17. Ludou

    @小时候爱玩 参考这两篇文章:
    https://www.ludou.org/create-wordpress-themes-header.html
    https://www.ludou.org/create-wordpress-themes-footer.html

    确保header.php中</head>之前有 wp_head();
    footer.php中</body>之前有 wp_footer();

  18. 小时候爱玩

    @Ludou 谢谢博主,问题解决了,真是头部缺少wp_head();函数的原因。

  19. 哼哼猪

    个人觉得,文章url加上html用户体验较好,如果分类这样加上的话看着有点别扭

  20. 直播间

    高手,wordpress如何根据分类ID获取分类标题呀,能赐个代码吗

  21. Ludou

    @直播间 <?php echo get_the_category_by_ID( $cat_ID ); ?>

  22. 直播间

    @Ludou 谢谢高手的帮忙

  23. 第三眼

    嗯,这样保险多了哦

  24. 向日葵媒体设计

    看到你文章最后那个金庸广告让我很怀念当时玩的网金

  25. 西门

    老实说,我觉得这个是多此一举,坑爹的SEO

  26. 小米手机壳

    固定链接设置里设置成这样:
    /%post_id%.html
    不就可以了吗?

  27. Ludou

    @小米手机壳 你试试看可不可以

  28. 免费源码

    果然是技术博客哦,好多东西蛮有用的~学习了咯~真想跟你换个友链哦,可惜你已经不换了~

  29. noname

    终于找到了!真的非常感谢博主的分享….

  30. 家庭影院推荐网

    我的不支持呢。可能是因为网站空间问题,不支持静态

  31. 米奇

    虚心请教博主,如何重写分类和分类翻页的URL成以下风格:
    /category/tutorials.html
    /category/tutorials_2.html
    WordPress原来的分类翻页/category/tutorials/page/2层数太深,不在同一级目录,可能不利于百度SEO.

  32. Ludou

    @米奇 抱歉,暂时没找到相关方法。不过你的这种链接形式,不同分页就代表不同页面了,对SEO未必有好处

  33. 发现互联网

    谷歌了一下又进来这里,请问露兜大哥你现在是用这款插件,还是直接修改固定链接?

  34. Ludou

    @发现互联网 本博的页面没有.html后缀,用的是固定连接。

  35. 發現互聯網

    @Ludou 哦,文章页面也是固定链接吧xd

  36. Ludou

    @發現互聯網 是的

  37. 君君

    我在后台更新了文章,但是到列表也却看不到。但奇怪的是,偶尔也能看到,但很少。
    还有,我网站banner下有一行关键字,我在后台修改了,有的页面却没有同步更新?
    麻烦您帮下忙

  38. Ludou

    @君君 缓存

  39. kinner

    好文章啊。

发表留言