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 を使用してみましたが、出力には影響しませんでした。

4

1 に答える 1

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

私の推測では、配列がどのように構成されているかでした。各配列キーは機能の実際の名前であり、その値は、特定のユーザー インスタンスがその特定のアクションを実行する権限を持っているかどうかを決定する単純なブール値です。

名前で機能を検索していましたが、出力に 1 しか表示されていなかったため、探しているのはキーにあるとわかりました。

于 2013-10-05T03:02:50.440 に答える