Administration: Update WP_List_Table::get_sortable_columns() to support asc and desc arguments.

This makes the API a little more clear, whereas setting `false` used to mean `asc` and `true` meant `desc`, you can now use those directly, while maintaining back-compat.

Fixes #45089.

Props Tkama, SergeyBiryukov, shital-patel, desrosj, birgire, davidbaumwald. 



git-svn-id: https://develop.svn.wordpress.org/trunk@48151 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Jake Spurlock
2020-06-23 23:13:35 +00:00
parent 2245a4e390
commit 95b9933e64
2 changed files with 84 additions and 7 deletions
+11 -7
View File
@@ -946,12 +946,12 @@ class WP_List_Table {
}
/**
* Get a list of sortable columns. The format is:
* 'internal-name' => 'orderby'
* or
* 'internal-name' => array( 'orderby', true )
* Get a list of sortable columns.
*
* The second format will make the initial sorting order be descending
* The format is:
* - `'internal-name' => 'orderby'`
* - `'internal-name' => array( 'orderby', 'asc' )` - The second element set the initial sorting order.
* - `'internal-name' => array( 'orderby', true )` - The second element will make the initial sorting order be descending.
*
* @since 3.1.0
*
@@ -1161,9 +1161,13 @@ class WP_List_Table {
$class[] = 'sorted';
$class[] = $current_order;
} else {
$order = $desc_first ? 'desc' : 'asc';
if ( in_array( strtolower( $desc_first ), array( 'desc', 'asc' ), true ) ) {
$order = 'asc' === strtolower( $desc_first ) ? 'desc' : 'asc';
} else {
$order = $desc_first ? 'desc' : 'asc';
}
$class[] = 'sortable';
$class[] = $desc_first ? 'asc' : 'desc';
$class[] = 'desc' === $order ? 'asc' : 'desc';
}
$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>';