WordPress.org

Make WordPress Core

Ticket #15786: raw.15786.2.diff

File raw.15786.2.diff, 1.8 KB (added by scribu, 3 years ago)

Don't JOIN posts & users; filter by post type

  • wp-admin/export.php

     
    136136        </li> 
    137137        <li> 
    138138                <label><?php _e( 'Authors:' ); ?></label> 
    139                 <?php wp_dropdown_users( array( 'name' => 'post_author', 'multi' => true, 'show_option_all' => __('All') ) ); ?> 
     139                <select name="author" id="author"> 
     140                <option value="all" selected="selected"><?php _e('All'); ?></option> 
     141                <?php 
     142                $author_ids = $wpdb->get_col( "SELECT DISTINCT post_author FROM {$wpdb->posts} WHERE post_type = 'post'" ); 
     143                $authors = $wpdb->get_results( "SELECT ID, display_name FROM $wpdb->users WHERE ID IN (" . implode( ',', $author_ids ) . ") ORDER BY display_name" ); 
     144                foreach ( (array) $authors as $author ) { 
     145                        echo "<option value='{$author->id}'>{$author->display_name}</option>\n"; 
     146                } 
     147                ?> 
     148                </select> 
    140149        </li> 
    141150        <li> 
    142151                <label><?php _e( 'Date range:' ); ?></label> 
     
    165174<ul id="page-filters" class="export-filters"> 
    166175        <li> 
    167176                <label><?php _e( 'Authors:' ); ?></label> 
    168                 <?php wp_dropdown_users( array( 'name' => 'page_author', 'multi' => true, 'show_option_all' => __('All') ) ); ?> 
     177                <select name="author" id="author"> 
     178                <option value="all" selected="selected"><?php _e('All'); ?></option> 
     179                <?php 
     180                $author_ids = $wpdb->get_col( "SELECT DISTINCT post_author FROM {$wpdb->posts} WHERE post_type = 'page'" ); 
     181                $authors = $wpdb->get_results( "SELECT ID, display_name FROM $wpdb->users WHERE ID IN (" . implode( ',', $author_ids ) . ") ORDER BY display_name" ); 
     182                foreach ( (array) $authors as $author ) { 
     183                        echo "<option value='{$author->id}'>{$author->display_name}</option>\n"; 
     184                } 
     185                ?> 
     186                </select> 
    169187        </li> 
    170188        <li> 
    171189                <label><?php _e( 'Date range:' ); ?></label>