有時我們想限制WordPress 部分用戶角色訪問后臺,可以通過下面的代碼實現。
一、只允許管理員、編輯和作者角色訪問后臺
將下面代碼添加到當前主題函數模板functions.php中:
add_action(?'init',?'zm_redirect_wp_admin'?); function?zm_redirect_wp_admin()?{ if?(?is_admin()?&&?is_user_logged_in()?&&?!current_user_can(?'manage_options'?)?&&?!current_user_can(?'publish_pages'?)?&&?!current_user_can(?'publish_posts'?)?&&?(?!defined(?'DOING_AJAX'?)?||?!DOING_AJAX?)??){ wp_safe_redirect(?home_url()?); exit; } }
判斷是否登錄及用戶角色,禁止訪問后臺的用戶角色直接跳轉到網站首頁。
如果需要跳轉到指定的頁面鏈接,比如前端用戶中心,可以將第4行的代碼修改為類似:
wp_safe_redirect(?'https://zmingcx.com/'?);
只能跳轉到站內鏈接,不能轉到站外鏈接。
如果只允許管理員訪問后臺,可將其中允許編輯和作者進入后臺的代碼刪除:
&&?!current_user_can('publish_pages')?&&?!current_user_can('publish_posts')
?
二、禁止默認注冊用戶角色進入后臺
默認注冊用戶角色指的是:WordPress后臺 → 設置 → 常規,設置新用戶默認角色中的角色。
if?(?is_admin()?&&?(?!defined(?'DOING_AJAX'?)?||?!DOING_AJAX?)?)?{ $current_user?=?wp_get_current_user(); if($current_user->roles[0]?==?get_option('default_role'))?{ wp_safe_redirect(?home_url()?); exit(); } }
代碼出自:www.ludou.org
如果你修改了新用戶默認角色,對之前已注冊的其他角色的用戶將無效。
上述兩段代碼都加了判斷,不會影響前端ajax請求。
相關推薦:《wordpress》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END