下拉列表中的所有功能

时间:2013-10-04 23:28:24

标签: php wordpress for-loop capability

我正在尝试将所有可能的功能放入下拉列表中。我是新手,所以对我很轻松。我现在所做的一点都没有工作:

$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-&gt; allcaps);返回实际值,而不是布尔值。我尝试使用settype但它不会影响输出。

1 个答案:

答案 0 :(得分:2)

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

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

您正在按名称搜索功能,因为您只在输出中看到1,我想到您要找的是键。