下拉列表中的所有功能


all capabilities in dropdown list

我正在尝试将所有可能的功能放入下拉列表中。我是新手,所以对我放轻松。我目前所拥有的一点也不起作用:

$user = get_user_by('id', '1');
$capslist = $user->allcaps; 
$dropdown = '<select>';
foreach($capslist as $cap){
$dropdown .= '<option value="'.$cap.'">'.$cap.'</option>';
}
$dropdown .= '</select>';
return $dropdown;

编辑--

我把它做成一个短代码,只是为了快速测试:

add_shortcode('capsdropdown', 'sc_capsdropdown');
function sc_capsdropdown($attr) {
$user = get_user_by('id', '1');
$capslist = $user->allcaps; 
$dropdown = '<select>';
foreach($capslist as $cap){
$dropdown .= '<option value="'.$cap.'">'.$cap.'</option>';
}
$dropdown .= '</select>';
return $dropdown;
}

它确实创建了一个下拉列表。问题是,它是布尔值。都是1。有什么方法可以让它返回实际的上限名称吗?

编辑:这很奇怪,因为vardump($user->allcaps(;返回实际值,而不是布尔值。我尝试使用 settype,但它不影响输出。

foreach($capslist as $k=>$cap){
    $dropdown .= '<option value="'.$k.'">'.$k.'</option>';
}

我的猜测是数组的结构。每个数组键都是功能的实际名称,其值是一个简单的布尔值,用于确定给定用户实例是否有权执行该给定操作。

您正在按名称搜索功能,并且由于您在输出中只看到 1,因此我认为您要查找的内容在键中。