Пользовательский мета-запрос неправильно сортирует сообщения по мета-ключам. Если у меня есть тип подписки, то эти сообщения должны идти первыми, после этого сообщения для этих мета-ключей не существуют.
Я пытаюсь использовать приведенный ниже код, но он работает неправильно.
function apply_projects_query_filter ($query)
{
if ($query->query_vars['post_type'] == 'post' && $query->is_main_query()) {
$meta_query = array(
'relation' => 'OR',
array(
'key'=>'subscription_type',
'value'=>'subscription_type_yearly',
'compare'=>'==',
),
array(
'key'=>'subscription_type',
'value'=>'subscription_type_monthly',
'compare'=>'==',
),
array(
'key'=>'subscription_type',
'compare'=>'NOT EXISTS',
)
);
$query->set('meta_query', $meta_query);
//$query->set('meta_key', 'subscription_type');
//if($query->query_vars['meta_key'] == 'subscription_type')
//{
$query->set('orderby', array('meta_value' => 'DESC', 'date' => 'DESC'));
//}else{
//$query->set('orderby', 'date');
// }
//if($query)
//$query->set('orderby', 'meta_value title');
//$query->set('order', 'DESC');
return $query;
}
return $query;
}