首頁 > 部落格更改誌 > WordPress升級3.1排除中文網址無法顯示

WordPress升級3.1排除中文網址無法顯示

2011年3月29日 發表評論 閱讀評論

WordPress改版的速度還真是快,先前總算升級至V3.03 後來沒多久就直接跳V3.1,所以拖了一陣子才在最近升上去,原本想可以用幹嘛升級,但又想到先前用TT時因為懶的升~所以就升不上去了XD 還是升級吧!!

因為要顯示中文的網址,所以有對WordPress的核心進行調整,所以升上去後首要就是要再調整核心(因為還是一樣會有問題),在先前這篇WordPress 排除中文網址無法顯示提及的修正,原則上只有些許地方要注意,所以就再PO出來讓有需要的人針對V3.1應該對哪些進行調整。

要調整的程式為 wordpress\wp-includes\query.php 這隻,請找到以下這兩行:

$q[‘name’] = sanitize_title_for_query( $q[‘name’] );
$where .= ” AND $wpdb->posts.post_name = ‘” . $q[‘name’] . “‘”;

將q[‘name’]改成增加轉換編碼的function即可,如下:

$q[‘name’] = sanitize_title_for_query($q[‘name’]);
$where .= ” AND ( $wpdb->posts.post_name = ‘” . $q[‘name’] . “‘ OR $wpdb->posts.post_name = ‘” . urldecode(sanitize_title_for_query( $q[‘name’] )) . “‘)”;
*於4/9修正,因為3.1新版會將中文字以unicode的方式存入所以比對要調整

還有要調整的程式為 wordpress\wp-includes\pluggable.php 這隻

請找到以下這一行( 就是wp_sanitize_redirect這個函式):

function wp_sanitize_redirect($location) {

將其中有一行註解掉就行,如下,這行應該是判斷網址如有一些怪字元~就會被換掉:

//$location = preg_replace(‘|[^a-z0-9-~+_.?#=&;,/:%!]|i’, “, $location);

這樣中文網址又可以正常啦!!

Be Sociable, Share!
Categories: 部落格更改誌 Tags:
  1. 目前尚無任何的評論。
  1. 目前尚無任何 trackbacks 和 pingbacks。

*