Для каждого цикла отображается дублирование сообщений, если сообщение имеет более одной категории.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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