Итак, я пробую вывести название категории, а под ними - посты этой категории. Перебираю существующие категории через форич. В нем получаю идентификатор категории и передаю его в аргументы для вывода постов. Но, все равно под каждой категорией выводятся все посты. Делаю вывод, что функция get_posts() не считывает переданный мною айдишник категории или я его неправильно передаю. Как быть?
$loc_cat_args = [
'taxonomy' => 'location-categories',
'type' => 'location',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 1,
'exclude' => '',
'include' => '',
'number' => 0,
'pad_counts' => false,
];
$loc_categories = get_categories( $loc_cat_args );
<?php foreach($loc_categories as $category) : ?>
<div class="location-widget">
<h3><?php echo $category -> name ?></h3>
<ul class="location__list">
<?php
$cat_id = $category -> term_id;
$locations = get_posts([
'post_type' => 'location',
'category' => (int)$cat_id,
'orderby' => 'name',
'order' => 'ASC',
]);
foreach( $locations as $loc ) : ?>
<li><a href="<?php echo get_permalink($loc) ?>"><?php echo $loc -> post_title ?></a></li>
<?php endforeach ?>
</ul>
</div>
<?php endforeach ?>