昨天有網友給我留言,想讓 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