有學員反應他在Cloudways平台上安裝的WordPress在使用Paid Memberships Pro這套外掛建立新的會員方案時(membership level),方案名稱無法顯示中文(英文跟數字正常),錯誤的畫面如下圖所示:
這個問題是因為Paid Memberships Pro在建立資料庫表單的時候沒有規範編碼格式,像WordPress就有考慮到多國語言,所以他會有所規範。
(延伸閱讀:MySQL官方說明、WordPress創建資料庫檔案)
解決方式:
- 先將資料庫編碼改成utf8:
我是透過adminer這個只有一個php檔案的資料庫管理工具,他跟phpMyadmin功能幾乎一樣,但phpMyadmin安裝上會有些門檻。adminer不需要安裝,只要把檔案放到網站下,用瀏覽器打開就可以了。
ALTER DATABASE MyDb CHARACTER SET utf8;
WordPress官方說明:https://codex.wordpress.org/Converting_Database_Character_Sets - 把Paid Memberships Pro停用,刪除Paid Memberships Pro所創建的資料表,然後重新啟用 Paid Memberships Pro:
重新啟用後會創建新的資料表,這些新創建的資料表就會是utf8的編碼,於是創建中文名稱的會員方案就不會有問題了。
另外附上影片操作說明:
以下是影片裡頭提到的網址跟所用到的語法:
adminer官網:https://www.adminer.org/
adminer教學:http://www.aaronlife.com/teaching/uch_php_2015-06-03_00.html
MySQL語法:
1.查詢目前整個資料庫編碼:
show variables like “character_set_database”;
2.查詢某個資料表編碼,資料表名稱請修改:
SHOW TABLE STATUS where name like ‘wp_pmpro_membership_levels’;
3.將資料庫編碼改成utf8
ALTER DATABASE MyDb CHARACTER SET utf8;
WordPress官方說明:https://codex.wordpress.org/Converting_Database_Character_Sets