Custom sortable columns ordered by meta-value?

It’s because you are checking 'event_date' == $vars['event_date'] not 'event_date' == $vars['orderby].

But don’t use the request filter. Instead:

add_action( 'pre_get_posts', 'event_column_orderby' );  
function event_column_orderby( $query ) {  
    if( ! is_admin() )  
        return;  

    $orderby = $query->get( 'orderby');  

    if( 'event_date' == $orderby ) {  
        $query->set('meta_key','_wr_event_date');  
        $query->set('orderby','meta_value_num');  
    }  
} 

… and don’t manually set the order as you won’t then see the difference when toggling between ASC/DESC.

Leave a Comment