Для каждого цикла отображается дублирование сообщений, если сообщение имеет более одной категории.Php

Кемеровские программисты php общаются здесь
Anonymous
Для каждого цикла отображается дублирование сообщений, если сообщение имеет более одной категории.

Сообщение Anonymous »

У меня есть следующий код:











это прекрасно работает, если каждое сообщение имеет только одну категорию. Когда я присваиваю сообщению вторую категорию, сообщение отображается дважды. Если я сделаю 3 категории, сообщение будет отображаться втрое… Почему?

Обновление:
Объявление переменной $posts

$post_type = 'press-release';
$taxonomy = 'press-release-types';
$categories = $xxxxxx->get_categories($taxonomy);
$posts = $xxxxxx->get_posts_ordered_by_categories($post_type, $taxonomy, $categories);

set_query_var( 'posts', $posts );
set_query_var( 'categories', $categories );
set_query_var( 'taxonomy', $taxonomy );


Обновление 2: из Helper php

public function get_posts_ordered_by_categories($post_type, $taxonomy, $categories) {
$posts = [];
foreach ($categories as $category) {
$category_posts = $this->get_posts_from_category($post_type, $taxonomy, $category->term_id);
$posts = array_merge($posts, $category_posts);
}
return $posts;
}

protected function get_posts_from_category($post_type, $taxonomy, $category_id) {
return get_posts([
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'term_id',
'terms' => (int) $category_id,
)
),
'posts_per_page' => -1,
'orderby' => 'date',
'order' => 'DESC',
'post_status' => 'publish',
'post_type' => $post_type,
'suppress_filters' => false,
]);
}


Подробнее здесь: https://stackoverflow.com/questions/598 ... n-one-cate

Вернуться в «Php»