2013-10-04 56 views
0

我试图将所有可能的功能放入下拉列表中。我对这个很陌生,所以对我很容易。我目前所面对的是没有丝毫位工作:下拉列表中的所有功能

$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,但它不影响输出。

+0

你的代码对我来说似乎很好。你在哪里实施它? –

+0

到目前为止只是在页面编辑器中用exec php激活。其他的PHP语句正在工作,但是当我把它扔到那里时,整个页面循环都变成空白。只是获得页面标题和页眉/页脚。 –

+0

查看更新后的帖子。进展。还不完全。 –

回答

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

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

您正在通过名称搜索功能,并且由于您仅在输出中看到1,因此我认为您要找的是钥匙。

+0

感谢您的解释。正确的钱。 –

相关问题