我正在尝试将所有可能的功能放入下拉列表中。我是新手,所以对我放轻松。我目前所拥有的一点也不起作用:
$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,因此我认为您要查找的内容在键中。