Sort Wordpress custom posts alphabetically

I recently used WordPress’s new custom post type functionality (WP3+) to get biographies and testimonials for each staff member of a community organization entered in. Then, to sort them by last name, I used an ugly-but-functional call to array_multisort:

$lastname = array();
$posts = get_posts( array( 'post_type' => 'staffer', 'numberposts' => 10 ) );

foreach( $posts as $key => $post ) {

    $lastname[$key] = array_pop( explode( ' ', $post->post_title ) );
}
array_multisort( $lastname, SORT_ASC, $posts );

This is predicated on the assumption that each post of the custom staffer post type is named after the appropriate staffer, and the last name is the last word in the post title.

A better approach would be to build a more robust filter on the query_post hook that adds a $last_name variable to posts as they are retrieved, but that’s a battle for another day.

Hey, I'm RJ! For more learnings about software and management, find me @rjzaworski or sign up for my semi-regular newsletter.

Let’s keep in touch

Send me timely updates on software, product, and process.