WordPress給頁面URL添加.html后綴的方法
來源:程序員人生 發布時間:2014-06-08 21:01:25 閱讀次數:3805次
在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 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 改成你的頁面別名.
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈