最近在開發 WordPress Network 的 plugin,其中有一功能是讓使用者取得特定部落格的特定身分。翻找了 WordPress CODEX,找到了 add_user_to_blog() 這個 function。
根據官方的說明,這個 function 是這樣用的:
<?php add_user_to_blog( $blog_id, $user_id, $role ) ?>
三個參數分別是 $blog_id、$user_id、$role,簡單明瞭,清晰易懂,但是實際上根本不是這麼一回事啊,不論給 $blog_id 幾號,使用者總是取得 1 號部落格的權限。後來翻到另一篇官方文件,提到要用 restore_current_blog() 來還原 “目前的部落格”。但測試後還是失敗,指定的部落格 id 就是無效….
…真是讓人挫折…
不過既然 restore 沒有用,乾脆切換過去再指派好了… 所以寫了下面的 code….
switch_to_blog(5); // restore 不行,乾脆切換過去 #restore_current_blog(); $blog_id = 5; $user_id = 27; $role = 'editor'; add_user_to_blog($blog_id, $user, $role);
結果就可以了…. 有種被 WP Codex 欺騙的感覺。總算是完成工作了。
Leave a Reply