A few weeks ago I ran into someone on the WordPress StackExchange wanting to sort his list of authors by recent activity – the author with the most recently published article first, etc. This type of sorting isn’t currently possible using the get_users() function(codex), nor the WP_User_Query class (codex), but it can be done – here’s how:
Let’s assume you currently have something similar to the below in your author.php (or archive.php) theme file:
$users = get_users();
foreach ( $users as $user ) {
// HTML for each author using the $user object
}
You can make use of the $wpdb global object (codex) to make a direct SQL query that returns a list of author IDs sorted by recent activity:
global $wpdb;
$user_ids = $wpdb->get_results(
"
SELECT DISTINCT post_author
FROM $wpdb->posts
ORDER BY post_date DESC
"
);
You can then loop through this list of author IDs, retrieve the $user object with the get_user_by() function (codex), and write out your HTML save as before:
if ( $user_ids ) {
foreach ( $user_ids as $user_id ) {
$user = get_user_by( 'id', $user_id );
// HTML for each author using the $user object
}
}