Make WordPress Core


Ignore:
Timestamp:
11/26/2010 02:03:02 AM (16 years ago)
Author:
scribu
Message:

Make date columns first sort in descending order. See #15580

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/class-wp-list-table.php

    r16472 r16593  
    516516
    517517        /**
    518          * Get a list of sortable columns. The format is internal_name => orderby
     518         * Get a list of sortable columns. The format is:
     519         * 'internal-name' => 'orderby'
     520         * or
     521         * 'internal-name' => array( 'orderby', true )
     522         *
     523         * The second format will make the first sorting order be descending
    519524         *
    520525         * @since 3.1.0
    … …  
    536541         */
    537542        function get_column_info() {
    538                 if ( !isset( $this->_column_headers ) ) {
    539                         $screen = get_current_screen();
    540 
    541                         $columns = get_column_headers( $screen );
    542                         $hidden = get_hidden_columns( $screen );
    543                         $sortable = apply_filters( "manage_{$screen->id}_sortable_columns", $this->get_sortable_columns() );
    544 
    545                         $this->_column_headers = array( $columns, $hidden, $sortable );
    546                 }
     543                if ( isset( $this->_column_headers ) )
     544                        return $this->_column_headers;
     545
     546                $screen = get_current_screen();
     547
     548                $columns = get_column_headers( $screen );
     549                $hidden = get_hidden_columns( $screen );
     550
     551                $_sortable = apply_filters( "manage_{$screen->id}_sortable_columns", $this->get_sortable_columns() );
     552
     553                $sortable = array();
     554                foreach ( $_sortable as $id => $data ) {
     555                        if ( empty( $data ) )
     556                                continue;
     557
     558                        $data = (array) $data;
     559                        if ( !isset( $data[1] ) )
     560                                $data[1] = false;
     561                       
     562                        $sortable[$id] = $data;
     563                }
     564
     565                $this->_column_headers = array( $columns, $hidden, $sortable );
    547566
    548567                return $this->_column_headers;
    … …  
    603622
    604623                        if ( isset( $sortable[$column_key] ) ) {
    605                                 $orderby = $sortable[$column_key];
     624                                list( $orderby, $desc_first ) = $sortable[$column_key];
     625
    606626                                if ( $current_orderby == $orderby ) {
    607627                                        $order = 'asc' == $current_order ? 'desc' : 'asc';
    608                                         $class[] = "sorted-$current_order";
     628                                        $class[] = 'sorted';
     629                                        $class[] = $current_order;
    609630                                } else {
    610                                         $order = 'asc';
     631                                        $order = $desc_first ? 'desc' : 'asc';
    611632                                        $class[] = 'sortable';
     633                                        $class[] = $desc_first ? 'asc' : 'desc';
    612634                                }
     635
    613636                                $column_display_name = '<a href="' . esc_url( add_query_arg( compact( 'orderby', 'order' ), $current_url ) ) . '"><span>' . $column_display_name . '</span><span class="sorting-indicator"></span></a>';
    614637                        }
Note: See TracChangeset for help on using the changeset viewer.