I recently needed to display a list of authors within a WordPress blog. ?The goal was to sort the author list by number of posts before outputting the list. ?The method for calculating number of posts isnt a sortable key within WordPress g
I recently needed to display a list of authors within a WordPress blog. ?The goal was to sort the author list by number of posts before outputting the list. ?The method for calculating number of posts isn’t a sortable key within WordPress’ get_posts
, so I had to sort the result list myself. ?PHP’s usort
method, along with a custom function, allows you to accomplish the feat of sorting a collection of objects by key.
The first step is creating the function that does the sorting — this is that function:
function sort_objects_by_total($a, $b) { if($a->total_posts == $b->total_posts){ return 0 ; } return ($a->total_posts total_posts) ? -1 : 1; }
The function returns -1 (smaller than), 0 (equal to), or 1 (larger than) when doing the sort comparisons. ?The last is applying the sortation function to the array, which is done by usort:
usort($users, 'sort_objects_by_total');
The code above now ensures that my authors array is sorted by total_posts. ?Keep this snippet in your PHP toolbox for the future — I’m certain you’ll need it at one time or another.
Read the full article at: Sort Objects by Property with PHP