Make WordPress Core


Ignore:
Timestamp:
11/26/2010 02:03:02 AM (14 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.