限制 WordPress 部分用户角色进入后台

知更鸟
知更鸟
知更鸟
1632
文章
6929
评论
2020年3月17日15:16:5958533

有时我们想限制WordPress 部分用户角色访问后台,可以通过下面的代码实现。

限制 WordPress 部分用户角色进入后台

限制 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请求。

weinxin
版权声明
本站原创文章转载请注明文章出处
WordPress 删除xmlrpc.php防DDOS攻击 WordPress

WordPress 删除xmlrpc.php防DDOS攻击

可能很多WordPress用户都不知道这个xmlrpc.php是什么,简单地说就是Wordpress 为手机等客户端提供的接口文件,早期的Wordpress 这个接口就是个万恶之源,虽然经过多次的升级...
WordPress 5.6.1 维护更新 WordPress

WordPress 5.6.1 维护更新

WordPress 5.6.1 维护更新,修复20个错误及7个区块编辑器问题,无安全更新,中文版同期发布。 看了一下更新日志,只有少数几个程序的错误,基本都是修正默认主题的错误。 该版本是一个短周期维...
登录用户显示不同的 WordPress 菜单 WordPress

登录用户显示不同的 WordPress 菜单

如果让登录用户与未登录浏览者,显示不同的菜单,可以通过下面的代码实现: 登录用户显示不同的 WordPress 菜单 将下面代码添加到当前主题函数模板functions.php中: if( is_us...
手动开启WordPress站点维护模式 WordPress

手动开启WordPress站点维护模式

在更新程序或插件中,WordPress前端会显示处于维护模式,如果想临时启用维护模式,让用户知道你的站点在维护中,可以通过下面的代码实现。 开启WordPress站点维护模式 将下面代码添加到当前主题...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:5   其中:访客  5   博主  0
    • 久伴博客 久伴博客 2

      这个很NICE,有前端用户中心的,当用户尝试进入后台时候直接跳转用户中心

      • 三生石托管 三生石托管 2

        正好需要这个功能,抽空加进去。

        • 波克城市 波克城市 2

          很实用 感谢分享

          • 167素材网 167素材网 1

            这个功能好像忽略了,赶紧加上 :arrow: 每次来访问贵站,都能有所收货。

            • 才华无限 才华无限 4

              多用户博客需要,单一的不用吧