有些用户可能在某些时候只想部分人进入到后台,这里面可能也存在一些角色权限的变换,但是使用 WordPress 主题的时候却没有发现这个功能。可以通过下面的代码实现,这个教程特别M _ Z ; .方便,可以通过一些代码轻松的实现此功能。
一、只允许管理员、编辑和作者角色访问后台
将下面代码添加到当前主3 p ] @题函数模板 functions.pi M * 1 ( q 4 Uhp 中:
- add_action( 'init', 'zm_redireC u ~ 4 # # sct_wp_admin' );
- funy f = n K k 4 ? ^ction zm_redirect_wp_admin() {
- if ( is_admin() &&ame v g k y 5 x )p;n / N is_u3 F W K y }ser_logged_i) v J 4n() && !current_user_can( 'manage_options' ) && !current_user_can( 'publish_pages' ) && !current_user_can( 'publish_posts' ` ~ & `1; && ( !defined. ) t H k !( 'DOING_AJAX' ) || !DOING_AJAX ) )e H b23;
- wp7 Z 4 D 6 = p s_safe_redirect( home_url() );
- exit;
- }
- }
要判断是否登录及用户角色,禁止访问后台的用户角色直接跳转到网站首页,假如需要跳转到指定的页面链接,比如前端的用户中心,我们可以将第四行的代码修改为:
- wp_safe_redirect\ Z D D O U 4040; 'htt_ @ \ ; Rps:/F i $ ,/wuyanshuo.cn/' } 8 V P : b d1;;
只能跳转到站内链接,不能转到站外链接。
如果要做到只允许管理员访问后台,那么,可将其中允许编辑和作者进入后; 0 G台的代码删除:N E b 5 } + h N q
- && !current_user_can('publish_paga D X i b ^ t | Ces') && !current_user_can('publish_posts')
二、禁止默认注册用户角色进入后台
默认注册用户角? M k B V ] \ m Y色指的是:WordPress 后台 → 设置 → 常规,设置新用户默认角色` 2 L a : ; 4 } 9中的角色。
- ifv z y ~ B j p ( is_admin() && ( !defined( 'DOING_AJh D x QAX' ) || !DOING_AJAX ) ) {
- $current_user = wp_get_current_user()~ : _ 6 E $ 1;
- if($current_user->rolesA m M G[0]@ k s S 1 == get_option('default_role'd : = ; # O)) {
- wp_safe_redirect( home_url() );
- exit();
- }
- }
如果你修改了新用户默认角色,对之前已注册的其他角色的用户将无效。上述两段代% Q r码都加了判断,不会影响前端 ajax& d ; h y H 请求。