Как в wp query вывести 10 постов, исключив при этом текущий и еще 2 по определенным метатегам?
Есть сайт на wordpress. Мне нужно вывести 10 заголовков постов на single странице по определенным параметров исключая текущую и первые две по определенным метатегам.
$cat = get_the_category();
$args = array(
'numberposts' => 10,
'category_name' => $cat[0]->category_nicename,
'post__not_in' => array(get_the_ID()),
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'age',
'value' => array(3, 4),
'compare' => 'NOT_IN',
'numberposts' => 2
)
)
);
$prognoz = get_posts( $args );
У меня основная проблема как исключить 2 поста по мета тегам. Как это можно сделать?
Ответы (1 шт):
Автор решения: WP Punk
→ Ссылка
За 1 запрос это сделать не получится. Делайте 1-м запросом получение 2-х постов, а во втором исключайте их.
$cat = get_the_category();
$exclude = get_posts( [
'numberposts' => 2,
'category_name' => $cat[0]->category_nicename,
'post__not_in' => array(get_the_ID()),
'order' => 'ASC',
'fields' => 'ids',
'meta_query' => array(
array(
'key' => 'age',
'value' => array(3, 4),
'compare' => 'NOT_IN',
)
)
] );
$args = array(
'numberposts' => 10,
'category_name' => $cat[0]->category_nicename,
'post__not_in' => array(get_the_ID()) + $exclude,
'order' => 'ASC',
);
$prognoz = get_posts( $args );