Um die Sichtbarkeitseinstellungen nur für angemeldete Benutzer zugänglicher Elemente zu steuern benötigte ich ein Formularfeld aus dem eine WordPress-Rolle gewählt werden kann. Dafür genügt ein einfaches Array mit dem Slug der Rolle und dem (übersetzten) Namen. Die Rolle ist der Schlüssel, der Name der Rolle der Wert.
function ppt_helper_roles_array() {
global $wp_roles;
foreach ( $wp_roles->roles as $role => $details ) {
$roles[$role] = $details['name'];
}
return $roles;
}
Array (
[administrator] => Administrator
[editor] => Editor
[author] => Author
[contributor] => Contributor
[subscriber] => Subscriber
)
Anwendungsbeispiel
$options = get_option('settings_group');
echo '<select name="settings_group[role_setting]">';
foreach ( ppt_helper_roles_array() as $role => $label ) {
echo '<option '.( $role == $options['role_setting'] ? 'selected="selected"' : '' ).' value="'.esc_attr($role).'">' . esc_html($label) . '</option>';
}
echo '</select>';
Schreibe einen Kommentar