本篇文章更新時間:2020/01/07
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
如果你正在用 WPML 這款外掛來處理多國語言,且又有客製化的網站使用者,且又碰到了明明有設定好權限,但其他使用者就是有其他語系不能翻譯的問題。
很明顯感覺到,這篇就是寫給我自己筆記的... 上述條件處理起來真不是簡單的架構,一般情境使用應該不太會碰到...
首先還是紀錄一下「官方設定」說法,相對本篇產出時近期(2019)丟出來的問答。
設定使用者可以參與翻譯的作法就是到 WPML->Translation Management-> Translation Roles
裡來選取設定帳號加入翻譯群組。
不過可能是還有問題沒處理好,所以我這邊一直都無法成功開啟完整的翻譯權限,使用者帳號只有部分翻譯功能。
於是追查了程式碼,寫了下面這段 code snippet 程式碼片段來直接干預設定,解決問題!
function mxp_is_translator_filter($is_translator, $user_id, $args) {
$user = wp_get_current_user();
$roles = array('role_a', 'role_b', 'role_c', 'role_d');
foreach ($roles as $key => $role) {
if (in_array($role, (array) $user->roles)) {
return true;
}
}
return $is_translator;
}
add_filter('wpml_override_is_translator', 'mxp_is_translator_filter', 99, 3);
直接針對使用者角色去判斷給予開通翻譯權限,其他的就照設定走。
成為那個「沒人」
當上「第一個人」