WordPress禁止非管理员访问网站后台

一般情况下个人博客网址都直接关闭了注册功能,因此不存在非管理员访问后台的问题。但如果你使用WordPress开发了多用户功能,通常已经采用自定义的表单和用户面板来替代了WordPress的后台用户面板,这时候可能要考虑禁止用户访问WordPress管理后台了。

WordPress自带的注册功能是通过邮件激活,显然我们也必须禁止用户访问wp-login.php(当然也可以直接关闭注册来实现,此处我们统一采用代码实现)。具体代码如下,添加到主题目录下functions.php内即可。

// 禁止非管理员登录后台
	add_action('admin_init', 'redirect_non_admin_users');
	function redirect_non_admin_users() {
		if (!is_super_admin() && empty($_REQUEST)) {
			wp_redirect(home_url('?from=wp-admin'));
			exit;
		}
	}

	// 移除原生登录注册
	add_action('login_head', 'redirect_login_form_register');
	function redirect_login_form_register() {
		wp_redirect(home_url('?from=wp-admin'));
		exit(); // always call `exit()` after `wp_redirect`

去试试效果吧。

0
分享到:

评论0

请先

没有账号? 忘记密码?