Make WordPress Core


Ignore:
Timestamp:
05/29/2007 04:28:10 AM (18 years ago)
Author:
ryan
Message:

Post and page management filter additions from mdawaffe. see #3945

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/user.php

    r5194 r5587  
    180180}
    181181
     182function wp_dropdown_users( $args = '' ) {
     183    global $wpdb;
     184    $defaults = array(
     185        'show_option_all' => '', 'show_option_none' => '',
     186        'orderby' => 'display_name', 'order' => 'ASC',
     187        'include' => '', 'exclude' => '',
     188        'show' => 'display_name', 'echo' => 1,
     189        'selected' => 0, 'name' => 'user', 'class' => ''
     190    );
     191   
     192    $defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;
     193   
     194    $r = wp_parse_args( $args, $defaults );
     195    extract( $r );
     196
     197    $query = "SELECT * FROM $wpdb->users";
     198
     199    $query_where = array();
     200
     201    if ( is_array($include) )
     202        $include = join(',', $include);
     203    $include = preg_replace('/[^0-9,]/', '', $include); // (int)
     204    if ( $include )
     205        $query_where[] = "ID IN ($include)";
     206
     207    if ( is_array($exclude) )
     208        $exclude = join(',', $exclude);
     209    $exclude = preg_replace('/[^0-9,]/', '', $exclude); // (int)
     210    if ( $exclude )
     211        $query_where[] = "ID NOT IN ($exclude)";
     212
     213    if ( $query_where )
     214        $query .= " WHERE " . join(' AND', $query_where);
     215
     216    $query .= " ORDER BY $orderby $order";
     217
     218    $users = $wpdb->get_results( $query );
     219
     220    $output = '';
     221    if ( !empty($users) ) {
     222        $output = "<select name='$name' id='$name' class='$class'>\n";
     223
     224        if ( $show_option_all )
     225            $output .= "\t<option value='0'>$show_option_all</option>\n";
     226
     227        if ( $show_option_none )
     228            $output .= "\t<option value='-1'>$show_option_none</option>\n";
     229
     230        foreach ( $users as $user ) {
     231            $user->ID = (int) $user->ID;
     232            $_selected = $user->ID == $selected ? " selected='selected'" : '';
     233            $output .= "\t<option value='$user->ID'$_selected>" . wp_specialchars($user->$show) . "</option>\n";
     234        }
     235
     236        $output .= "</select>";
     237    }
     238
     239    $output = apply_filters('wp_dropdown_users', $output);
     240
     241    if ( $echo )
     242        echo $output;
     243
     244    return $output;
     245}
     246
    182247?>
Note: See TracChangeset for help on using the changeset viewer.