在WordPress Multisite上,作为三个不同的用户登录,有三个不同的角色:超级管理员、订阅者和新的自定义角色“school_contact”-登录后,我想根据他们的角色将他们重定向到不同的位置。所以我们已经有了一个处理登录重定向的工作插件,但是现在我想检测用户角色,并根据该角色将其发送到不同的位置。
问题是,$user-
经进一步调查,$wp_角色-
这是我的密码:
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
function my_login_redirect( $redirect_to, $request, $user ){
AssistanceLeagueController::writeTolog("Login detected. Current user roles: " . json_encode($user->roles)); //prints []
AssistanceLeagueController::writeTolog("All Roles: " . json_encode($wp_roles->roles)); // prints null
}
超级管理员和学校联系人的结果都是一样的。
我尝试使用$user=wp_get_current_user();
,但是我的用户没有返回任何内容。我认为这是因为我连接到登录过程的最开始,而用户还没有从技术上登录。
当我为superadmin输出json_encode($user)时,我得到以下信息:
{"data":{"ID":"19782","user_login":"optewebdev","user_pass":"$P$BgY8wrhUKPuB9venGB XqRDAXz58coL0","user_nicename":"optewebdev","user_email":"david@opteweb.c om","user_url":"http:\/\/www.opteweb.com","user_registered":"2015-12-12 0 1:01:13","user_activation_key":"1513759265:$P$BrkXfIXahs9QknsztysSAl19Ej9 udy1","user_status":"0","display_name":"optewebdev","spam":"0","deleted": "0"},"ID":19782,"caps":{"manage_signup_sheets":true},"cap_key":"wp_capabi lities","roles":[],"allcaps":{"manage_signup_sheets":true},"filter":null}
当我为superadmin输出json_encode($user)时,我得到:
{"data":{"ID":"26945","user_login":"schoolcontact-test","user_pass":"$P$BmMrcYf.fxTI0mZM3ZkKiV9KB.GUbF.","user_nicename":"schoolcontact-test","user_email": "test@opteweb.com","user_url":"","user_registered":"2018-01-22 23:09:55", "user_activation_key":"","user_status":"0","display_name":"Darren Marshal l","spam":"0","deleted":"0"},"ID":26945,"caps":[],"cap_key":"wp_capabilit ies","roles":[],"allcaps":[],"filter":null}
同样有用:这是我从角色的wp_选项表中得到的:
s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:78:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1; s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b :1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_other s_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"d elete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s :14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;s:11:"update_core";b:1;s:10:"list_users";b:1;s:12:"remove_users";b:1;s:13:"promote_users";b:1;s:18:" edit_theme_options";b:1;s:13:"delete_themes";b:1;s:6:"export";b:1;s:14:"ts_vcsc_extend";b:1;s:6:"sp_cdm";b:1;s:14:"sp_cdm_vendors";b:1;s:15:"sp_cdm_settings";b:1;s:15:"sp_cdm_projects";b:1;s:15:"sp_cdm_uploader";b:1;s:13:"sp_cdm_addons";b:1;s:14:"sp_cdm_c lients";b:1;s:11:"sp_cdm_help";b:1;s:12:"sp_cdm_forms";b:1;s:13:"sp_cdm_groups";b:1;s:17:"sp_cdm_categories";b:1;s:15:"sp_cdm_top_menu";b:1;s:26:"sp_cdm_show_folders_as_nav";b:1;s:16:"sp_cdm_user_logs";b:1;s:24:"manage-wp-users-exporter";b:1;s:21:"use-wp- users-exporter";b:1;}}
s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:35:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:2 0:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pa ges";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delet e_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:14:"ts_vcsc_extend";b:1;}}
s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_po sts";b:1;s:22:"delete_published_posts";b:1;}}
s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;}}
s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}
s:14:"school_contact";a:2:{s:4:"name";s:14:"School Contact";s:12:"capabilities";a:3:{s:4:"read";b:1;s:7:"level_0";b:1;s:13:"manage_school";b:1;}}
这只是来自wp_选项表,而不是来自任何多站点站点的wp_xx_选项表。。。
我有一个类似的问题,结果是我没有检查好的网站
使用$user=new WP\u user($user\u id',,获取当前的博客\u id())
就可以了。