У меня есть следующий код:
это прекрасно работает, если каждое сообщение имеет только одну категорию. Когда я присваиваю сообщению вторую категорию, сообщение отображается дважды. Если я сделаю 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
Кемеровские программисты php общаются здесь
1719955954
Anonymous
У меня есть следующий код:
это прекрасно работает, если каждое сообщение имеет только одну категорию. Когда я присваиваю сообщению вторую категорию, сообщение отображается дважды. Если я сделаю 3 категории, сообщение будет отображаться втрое… Почему?
[b]Обновление:[/b]
Объявление переменной $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 );
[b]Обновление 2:[/b] из 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,
]);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/59825913/for-each-loop-results-in-duplicate-post-display-when-post-has-more-than-one-cate[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия