Я написал небольшой скрипт для извлечения и отображения 4 случайных постов из той же категории, что и основной пост. Проблема в том, что 6 сообщений в этой категории (с метками вопросов и ответов) имеют одинаковое изображение Таким образом, если скрипт отображает два или три сообщения Q & A, он отображает одно и то же изображение 2-3 раза.
Можно ли ограничить запрос на получение 4 сообщений из категории, но включить только 1 из сообщений, которые имеют тег и изображение Q & A?
Это функция, которую я сейчас использую:
function wcr_related_posts($args) {
global $post;
$category = get_the_category();
// default args
$common_args = array(
'numberposts' => 4,
'orderby' => 'rand',
'order' => 'DESC',
'meta_query' => array(
'key' => '_thumbnail_id',
'compare' => 'EXISTS'),
'post_type' => "post",
'post_status' => "publish",
'post__not_in' => array($post->ID)
);
$cat_search_args = array(
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'name',
'terms' => $category[0]->name
)
));
$feature_posts_args = array(
'post__in' => array( 705, 1883, 4897, 3967, 3766, 3585, 2698, 2412, 2203, 2575, 282, 4040)
);
if ( in_array($category[0]->name, array('Erotic Hypnosis', 'Dominance and Submission', 'Sexual Health'))&& is_page()!== true){
$args = wp_parse_args($cat_search_args, $common_args);
}else {
$args = wp_parse_args($feature_posts_args, $common_args);
}
// use for diagnostics only
// print_r($args);
// query
$related_posts = get_posts($args);
// get template
include_once( __DIR__ . '/relatedposts-template.php');
wp_reset_postdata();
}