WordPress升級3.1排除中文網址無法顯示
WordPress改版的速度還真是快,先前總算升級至V3.03 後來沒多久就直接跳V3.1,所以拖了一陣子才在最近升上去,原本想可以用幹嘛升級,但又想到先前用TT時因為懶的升~所以就升不上去了XD 還是升級吧!!
因為要顯示中文的網址,所以有對WordPress的核心進行調整,所以升上去後首要就是要再調整核心(因為還是一樣會有問題),在先前這篇WordPress 排除中文網址無法顯示提及的修正,原則上只有些許地方要注意,所以就再PO出來讓有需要的人針對V3.1應該對哪些進行調整。
要調整的程式為 wordpress\wp-includes\query.php 這隻,請找到以下這兩行:
$where .= ” AND $wpdb->posts.post_name = ‘” . $q[‘name’] . “‘”;
將q[‘name’]改成增加轉換編碼的function即可,如下:
$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);
這樣中文網址又可以正常啦!!
近期留言