You’re not actually using the $_GET['orderby']
-value anywhere. What you’re doing in your code is ordering by the text_date
-meta value, always. If you want to order by date by default, and when $_GET['orderby']
is set to default orderby-values or if $_GET['orderby_meta']
is set, order by those instead you need to do something like this:
if (isset($_GET['orderby']){
$query->set('orderby', sanitize_key($_GET['orderby']);
$query->set('order', 'DESC');
} else if (isset($_GET['orderby_meta']){
$query->set('orderby', 'meta_value_num');
$query->set('meta_key', 'text_date');
$query->set('order', 'DESC');
}