Wordpress Order Posts by Last Word in Title
// 1. In functions.php :
function posts_orderby_lastname ($orderby_statement)
{
$orderby_statement = "RIGHT(post_title, LOCATE(' ', REVERSE(post_title)) - 1) ASC";
return $orderby_statement;
}
// 2. Before query:
add_filter( 'posts_orderby' , 'posts_orderby_lastname' );
// 3. Query posts:
$staff_query = new WP_Query( 'post_type=staff&posts_per_page=-1&orderby=title&order=ASC' );
// 4. After query:
remove_filter( 'posts_orderby' , 'posts_orderby_lastname' );