奇怪的是,也许没有get_user_role
函数,所以前面的答案产生错误也就不足为奇了。
根据我与Rodney Hawk的讨论,我仍然想知道这个练习的意义是什么,或者这个操作所服务的安全功能是其他方法无法更好地服务的,但是,如果首选的目标是在作者是“订阅者”的情况下从作者配置文件页面重定向每个人,那么您可以使用以下内容:
//for authors template (author.php or variant)
$curauth = (get_query_var(\'author_name\')) ? get_user_by(\'slug\', get_query_var(\'author_name\')) : get_userdata(get_query_var(\'author\')) ;
$author_roles = $curauth->roles ;
if ( in_array( \'subscriber\', $author_roles ) ) {
//probably would want something a little different, but good enough for example
wp_redirect( \'http://redirect-here.com\', 404 ) ;
//always follow wp_redirect with exit...
exit ;
}
注意:上面使用的$curauth代码似乎直接来自Codex。考虑到这种情况的具体情况(仅针对author.php模板,仅针对订阅者),您可以更简单地编写第一行,如下所示:
$author_roles = get_user_by(\'slug\', get_query_var(\'author_name\') )->roles ;
注2:尚未测试重定向部分。