改兩下代碼就能讓Wordpress支持中文URL

之前在配置WordPress的時候做了個固定鏈接(%postname%),但在這之後我在我無意間點到文章的中文TAG的鏈接(例如http://yoursite.com/p/tag/這是中文的)直接給我彈了個404 Not Found,這我很鬱悶啊,不能正常訪問會影響到網站的用戶體驗的,不過經過多方查找資料才發現問題原因。wordpress 由於使用的是UTF8字符集.但是URL訪問提交過來的URL中文字符是GBK 所以根據這個GBK的字符串查找文章標題,所以說肯定是找不到。。。 也就是說要對這個GBK字符串轉換成UTF8

經過多方查找,終於知道了不用插件只需簡單的改兩下代碼就可以支持中文URL了。

以下是修改方法

修改wp-includes目錄下的class-wp.php文件:

1、找到

$pathinfo = $_SERVER['PATH_INFO'];

修改為

$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK');

2、找到

$req_uri = $_SERVER['REQUEST_URI'];

修改為

$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK');

以上兩處修改都在函數parse_request()內,wordpress4.8和wordpress4.9.8的會有點出入,我把我修改過後的代碼的截圖放上來

改兩下代碼就能讓Wordpress支持中文URL

經過修改之後 WordPress URL裡就可以支持中文字符串了,點個關注點個贊,轉載請註明原作者江程訓。

想與我討論wordpress就來江程訓的小程序:346363551


分享到:


相關文章: