这是我要替换的功能: 数组('admin','author')与var like数组($ string) 所以我有一个来自我的主题选项(来自选择字段)的数组,它返回我在函数中需要的用户角色,它返回如下:
Array ( [0] => administrator [1] => author [2] => subscriber )
我做了:
$string = "'".implode("','",$array)."'";
我的职能:
add_filter("login_redirect", "subscriber_login_redirect", 10, 3);
function subscriber_login_redirect($redirect_to, $request, $user) {
if(is_array($user->roles))
if ( count( array_diff( $user->roles, array($string) ) ) !== count( $user->roles ) ) return site_url('/wp-admin/')
return home_url();
}
但仍有问题,在我的控制台日志中,字符串var返回'administrator','author','subscriber'
感谢您的帮助
答案 0 :(得分:0)
使用explode从字符串中创建数组
Array ( [0] => administrator [1] => author [2] => subscriber )
$string = implode(",",$array);
add_filter("login_redirect", "subscriber_login_redirect", 10, 3);
function subscriber_login_redirect($redirect_to, $request, $user) {
if(is_array($user->roles))
if ( count( array_diff( $user->roles, explode(",",$string) ) ) !== count( $user->roles ) ) return site_url('/wp-admin/')
return home_url();
}
“,”可能不是一个好的分隔符,使用最有可能像管道一样独特的东西或者甚至是字符串组合(例如!|!)