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

2020年3月18日11:27:37 6 110 views 1077字阅读3分35秒

有些用户可能在某些时候只想部分人进入到后台,这里面可能也存在一些角色权限的变换,但是始终没有找到一个好的方法。这就好比之前叶先生用DeDe织梦CMS模板的时候,可以使部分的用户角色进入,但使用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;
    	}
    }

要判断是否登录及用户角色,禁止访问后台的用户角色直接跳转到网站首页,假如需要跳转到指定的页面链接,比如前端的用户中心,我们可以将第四行的代码修改为:

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();
    	}
    }

代码来源于:露兜博客

假如你修改了新用户为默认角色,对之前已注册的其他角色的用户将无效,以上两段代码都加了判断,不会影响前端ajax请求。

叶先生
  • 本文由 发表于 2020年3月18日11:27:37
如何为WordPress主题添加文章字数和阅读时间 WordPress

如何为WordPress主题添加文章字数和阅读时间

折腾的路上永不止,很奇怪对于一篇文章内的字数和阅读时间有啥用呢,这我也不知道,也不敢问。不过有朋友说人家的主题里都有,叶先生你知道怎么加一个吗?说实话我是不知道的,不过在鸟叔这里看到了这个教程,所以今...
WordPress如何设置只允许游客浏览指定的分类文章 WordPress

WordPress如何设置只允许游客浏览指定的分类文章

有朋友会问,WordPress如何设置只允许游客浏览指定的分类文章,因为有些分类的文章我不想未登录的用户能够浏览。 不知道是心里作怪,还是好奇心里,感叹这个世界奇葩的人还真不少,不过能有什么办法呢,谁...
如何判断网站是否采用织梦Dedecms搭建 网站建设

如何判断网站是否采用织梦Dedecms搭建

今天有朋友来问叶先生,怎么才能够知道一个网站是否采用织梦Dedecms搭建。坦白说,这个不算太高深的技术,一是凭自己的建站经验,二来是从中看一些细节。只要稍微熟悉一点dedecms的站长或者技术人员都...
用PhpStudy如何在本地搭建WordPress WordPress

用PhpStudy如何在本地搭建WordPress

以前在还没用WordPress建站的时候一直想进行尝试,但后面发现不会在本地搭建,只能够购买域名和服务器进行搭建。但是因为网站上线之初因胡乱修改网站版面,导致网站整体崩溃无法进行恢复,所以只能选择删库...
匿名

发表评论

匿名网友 填写信息

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

评论:6   其中:访客  4   博主  2
    • 风也 风也 来自天朝的朋友 谷歌浏览器 Windows 10 河南省郑州市二七区 郑州铁路局小区 1

      wp好像也有插件可以实现这个功能

        • 叶先生 叶先生 来自天朝的朋友 火狐浏览器 Windows 10 广东省东莞市 电信

          回复 风也 没发现有,不过就算有,能不用插件就尽量不用吧,影响速度

        • 小姚工作室 小姚工作室 来自天朝的朋友 谷歌浏览器 Windows 7 江苏省无锡市 电信 4

          厉害,wordpress我还没用过多用户呢 :arrow:

          • ZAERA ZAERA 来自天朝的朋友 谷歌浏览器 Windows 10 河南省洛阳市偃师市 电信 2

            我直接把用户中心关掉了,只能管理员登录,记录IP地址,加强了注册验证!

              • 叶先生 叶先生 来自天朝的朋友 火狐浏览器 Windows 10 广东省东莞市 电信

                回复 ZAERA 每个人的习惯不一样嘛

              • 萧瑟 萧瑟 来自天朝的朋友 谷歌浏览器 Windows 10 湖北省 移动 4

                一般开启注册功能的站比较少一些。