将Wordpress和question2anwser两个系统整合在一起时,在q2a中部分用户的用户名会显示为一个不可识别的字符串,非常长的一串。为什么不显示中文昵称呢?
原来question2anwser里面调用的是nicename,可这个nicename看起来一点也不nice!
查资料后得知user_nicename是经过url特殊字符过滤后的user_login,而user_login是用户注册时输入的用户名。那为什么会变成不可识别的字符串呢?原来是因为我的站设置了支持中文用户名,还用了第三方登录插件,会自动获取第三方社交账号来作为用户名。nicename在wordpress中的作用是生成作者URL链接。所以要把特殊字符处理为字母和数字。含有特殊字符或中文的用户名,就被处理成一串鬼也不认识的字符串了。
找到了问题原因,那就来找解决办法吧!
先找到万恶之源:qa-include/util/external-users-wp.php。打开后,把里面的user_nicename,全部替换成display_name,一共有6处地方需要替换。
修改后,中文用户名就显示出来了!是不是很简单?希望我的经验对整合Wordpress和question2answer的朋友有所帮助。