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 } }