限制一些WordPress用户角色进入后台

Wordpress6个月前更新 SUYEONE
955 0 0

WordPress中,有时我们希望限制某些用户角色访问后台,以增强网站管理的安全性。以下是一种实现方法:

首先,如果你想仅允许管理员、编辑和作者访问WordPress后台,可以在当前主题的functions.php文件中添加以下代码:

“`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行代码,例如:
“`php
wp_safe_redirect( ‘https://xingkongWeb.com/’ );
“`
但请注意,此处的链接必须是站内的。

如果只想允许管理员访问后台,只需移除允许编辑和作者的部分,即:
“`php
!current_user_can(‘publish_pages’) &&
!current_user_can(‘publish_posts’)
“`

其次,如果你想阻止默认注册用户角色访问后台,可以在functions.php中添加以下代码:

“`php
add_action( ‘init’, ‘restrict_default_role_admin_access’ );
function restrict_default_role_admin_access() {
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();
}
}
}
“`
这里会检查新注册用户的默认角色。然而,此规则不会影响之前已注册并分配了其他角色的用户。

这两段代码都确保了不影响前端的AJAX请求。记得在修改后保存并更新functions.php文件,以应用这些更改。

© 版权声明

相关文章

暂无评论

暂无评论...
☺一键登录开启个人书签等功能!