I need to sort my search results by custom post type. the problem: the order is custom.
I do have 5 different post types and i got the order like so:
- artist
- artwork
- page
- post
- publication
I'd like the order to be like this:
- artist
- post
- artwork
- publication
- page
Here is what I have so far, the elements are grouped by their post type and get sorted by title. Wonderful. Now all I need is the custom ordering.
Any hint?
add_filter( 'posts_orderby', 'order_search_by_posttype', 10, 2 );
function order_search_by_posttype( $orderby ){
global $wpdb;
if( ! is_admin() && is_search() ) :
$orderby = "{$wpdb->prefix}posts.post_type ASC, {$wpdb->prefix}posts.post_title ASC";
endif;
return $orderby;
}
usort
to sort the returned array by post type