WordPress禁止普通用户访问后台

我们再开发或使用WordPress过程中,如果开放了用户注册登录等会员制,会存在前端用户中心,让用户的操作都再前端完成,这样的话我们需要把后台隐藏掉,避免撞库风险。

代码示例

我们通过前端登录后,通过域名/wp-admin/,可以进入后端,我们加一下策略,非管理员角色不能进入


// 非管理员不允许进入后台
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();
}
}

如果用户中心前端可以正常登录,我们需要把WordPress默认登录页面进行隐藏


// 更改后台路径地址
add_action('login_enqueue_scripts','login_protection');
function login_protection(){
if($_GET['word'] != 'press')header('Location: https://www.liangkedan.com');
}

参数可自行修改,Location(修改自己域名) word press (两个字段可自定义相当于链接自定义访问)。


举个例子:https://www.liangkedan.com/wp-login.php?word=press

使用方法

代码示例放在主题模板中的函数文件中(functions.php)