У меня есть пользовательский тип сообщения, где определенная мета-клавиша отмечена или нет, и я хочу запросить все сообщения, если ни одна публикация не проверена мета-ключом, и если какая-либо отмечена, то поместите эту запись над всеми сообщениями, например, как функция прикрепленных сообщений wp (orderby) а также запросить все остальные сообщения после этих сообщений.
вот моя настройка ловушки pre_get_posts:
// Load our function when hook is set
add_action( 'pre_get_posts', function( $query ) {
// Check if on frontend and main query is modified
if( ! is_admin() && $query->is_main_query() && is_post_type_archive( 'clinical_evidence' ) ) {
$meta_key = 'paid';
$meta_value = 'yes';
$meta_query = array(
'relation' => 'OR',
array( //check to see if paid has been filled out
'key' => $meta_key,
'compare' => 'EXISTS',
'value' => $meta_value
),
array( //if no paid has been added show these posts too
'key' => $meta_key,
'compare' => 'NOT EXISTS',
'value' => ''
)
);
$query->set('meta_query', $meta_query);
$query->set('orderby', 'meta_value');
$query->set('meta_key', $meta_key);
}
});
Я пробовал с отношением И, но не работает.
Итак, что я хочу: если в сообщении есть мета-ключ (EXISTS), сначала поместите сообщение в запросе, а затем во все остальные сообщения, а если нет, то будет выполнен запрос сообщений по умолчанию.