2013-10-04 3 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 초입니다. 실제 캡 이름을 반환하는 방법은 무엇입니까?

- EDIT : vardump ($ user-> allcaps) 때문에 이상합니다. 부울이 아닌 실제 값을 반환합니다. 나는 settype을 사용해 보았지만 출력에는 영향을 미치지 않았다.

+0

코드가 잘 된 것 같습니다. 어디에서 구현 했습니까? –

+0

지금까지 페이지 편집기에서 exec php가 활성화되었습니다. 다른 PHP 문이 작동하지만 내가 거기에 던져, 전체 페이지 루프가 빈 간다. 그냥 페이지 제목과 머리말/꼬리말을 얻는 것. –

+0

업데이트 된 게시물보기. 진행. 아직 거기에 없다. –

답변

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

내 생각 엔 배열이 어떻게 구성되었는지 생각해보십시오. 각 Array Key는 실제의 권한 이름이고, 주어진 사용자 인스턴스가 주어진 동작을 수행 할 수있는 권한을 가지고 있는지 여부를 결정하는 간단한 부울 값입니다.

이름으로 기능을 검색하고 출력에서 ​​1을 보았으므로 찾고 있던 것이 키에 있다고 생각했습니다.

+0

그 설명에 감사드립니다. 돈에. –

관련 문제