It appeared it was due to the fact that WordPress doesn’t understand that you need to order by certain post meta unless you specify it.
So in my case adding this fixed the sorting issue:
add_action( 'pre_get_posts', 'custom_orderby' );
function custom_orderby( $query ) {
if( ! is_admin() )
return;
$orderby = $query->get( 'orderby');
if( 'featured' == $orderby ) {
$query->set('meta_key','featured');
$query->set('orderby','meta_value');
}
elseif ( 'staff_order' == $orderby ) {
$query->set('meta_key','staff_order');
$query->set('orderby','meta_value_num');
}
elseif ( 'department' == $orderby ) {
$query->set('meta_key','department');
$query->set('orderby','meta_value');
}
}
Was able to fix the problem with the help of the member of Advanced Custom Fields community –
and by reading
http://code.tutsplus.com/articles/quick-tip-make-your-custom-column-sortable–wp-25095