1

我在 WordPress 中。我需要比较两个数组,然后从其中一个数组中取消任何匹配项。问题是,其中一个数组是从 get_users 获取数据,所以我想我可能必须使用 foreach 将其转换为字符串,所以我可以告诉它为数组中的用户提供 user_login。除非我错了,否则我认为我需要做的是获取数组,执行 foreach 语句,以便我可以告诉它获取 user_logins,然后将它们全部转换回数组。这是我到目前为止所拥有的一切(我不确定我是否在其中正确地执行了 if 语句(“null”是否是正确的限定符):

$adminnames = get_users('role=administrator');
$result = array_intersect($adminnames, $username);
if($result !== null){unset($username[$result]);}

$username 是简码中的属性之一。

另外,请原谅我的模糊,如果“用户名”中只有一个人,这是否意味着它不是一个数组?因为如果是这样,那可能会搞砸。

- 更新 -

如果获取所有管理员的 user_login 的唯一方法是执行 foreach 然后回显它,这甚至可能是不可能的。

4

1 回答 1

1

我找到了一个很好的解决方案。我已经在 $username 属性上做了一个 preg_split,所以在我运行它之后,这就是我从 $username 属性中取消设置管理员用户名的操作:

$users = preg_split("/[\s,]+/",$username);
wp_get_current_user();
if(current_user_can(administrator)){
        $nohidename = array_search($current_user->user_login,$users);
        if($nohidename !== FALSE){unset($users[$nohidename]);
        }
}

因此,它仅根据当前用户是否为管理员来执行此操作。如果没有,它会保持原样。效果很好。

编辑- 一种更简单的方法,没有array_search:

if(current_user_can(administrator)){
        if($username){
            unset($username);
        }
}
于 2013-10-06T20:31:58.720 回答