WordPress给页面URL添加.html后缀

标签:WordPress教程
如需帮忙改代码,或者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