WordPress.org

Make WordPress Core

Ticket #15786: raw.15786.2.diff

File raw.15786.2.diff, 1.8 KB (added by scribu, 7 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>