【问题标题】:all capabilities in dropdown list下拉列表中的所有功能
【发布时间】:2013-10-04 23:28:23
【问题描述】:

我正在尝试将所有可能的功能放入下拉列表中。我是新手,所以请放轻松。我目前所拥有的丝毫没有工作:

$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;
}

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

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

【问题讨论】:

  • 您的代码对我来说似乎不错。你在哪里实现的?
  • 到目前为止,只在页面编辑器中激活了 exec php。其他 php 语句正在工作,但是当我把它扔在那里时,整个页面循环变为空白。只是获取页面标题和页眉/页脚。
  • 查看更新后的帖子。进步。还没有。
  • 这是在黑暗中拍摄的,但试试这个:foreach($capslist as $k=&gt;$cap){ $dropdown .= '&lt;option value="'.$k.'"&gt;'.$k.'&lt;/option&gt;'; }
  • 黑暗中的绝杀!完全奏效。谢谢!把它写成答案,我会把它标记为已回答。 (然后也许向我解释 如何 工作!;)

标签: php wordpress for-loop capability


【解决方案1】:
foreach($capslist as $k=>$cap){
    $dropdown .= '<option value="'.$k.'">'.$k.'</option>';
}

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

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

【讨论】:

  • 感谢您的解释。物有所值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
相关资源
最近更新 更多