將Wordpress和question2anwser兩個(gè)系統(tǒng)整合在一起時(shí),在q2a中部分用戶的用戶名會(huì)顯示為一個(gè)不可識(shí)別的字符串,非常長(zhǎng)的一串。為什么不顯示中文昵稱呢?
原來(lái)question2anwser里面調(diào)用的是nicename,可這個(gè)nicename看起來(lái)一點(diǎn)也不nice!
查資料后得知user_nicename是經(jīng)過(guò)url特殊字符過(guò)濾后的user_login,而user_login是用戶注冊(cè)時(shí)輸入的用戶名。那為什么會(huì)變成不可識(shí)別的字符串呢?原來(lái)是因?yàn)槲业恼驹O(shè)置了支持中文用戶名,還用了第三方登錄插件,會(huì)自動(dòng)獲取第三方社交賬號(hào)來(lái)作為用戶名。nicename在wordpress中的作用是生成作者URL鏈接。所以要把特殊字符處理為字母和數(shù)字。含有特殊字符或中文的用戶名,就被處理成一串鬼也不認(rèn)識(shí)的字符串了。
找到了問題原因,那就來(lái)找解決辦法吧!
先找到萬(wàn)惡之源:qa-include/util/external-users-wp.php。打開后,把里面的user_nicename,全部替換成display_name,一共有6處地方需要替換。
修改后,中文用戶名就顯示出來(lái)了!是不是很簡(jiǎn)單?希望我的經(jīng)驗(yàn)對(duì)整合Wordpress和question2answer的朋友有所幫助。 |