Задать вопрос
@ygen

Как вывести подкатегории из текущей категории и 5 последних записей?

Никак не могу найти решение. Подскажите пожалуйста.
У категории есть 10 подкатегорий. Как вывести их в таком формате в шаблоне?

Подкатегория1
фото фото2 ... 5
запись1 запись2 .... 5

Подкатегория2
фото фото2 ... 5
запись1 запись2 .... 5

Спасибо.
  • Вопрос задан
  • 3042 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
igorbelikov
@igorbelikov
Fullstack Developer
Возможно примерно так:
// основные категории
$categories = get_categories( array(
    'parent'  => 0
) );
foreach ( $categories as $category ) {
    // подкатегории
    $sub_categories = get_categories( array(
        'parent'  => $category->term_id
    ) );
    foreach ( $sub_categories as $sub_category ) {
        // записи
        $posts = get_posts( array( 
            'category' => $sub_category->term_id,
            'posts_per_page' => 5,
            'orderby' => 'date',
        ) );
        foreach ( $posts as $post ) {
            // вывод поста и фото
        }
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ygen Автор вопроса
Пока вот что получилось, но не хочет рубрики (подкатегории) выводить ни в какую. Категории выводит а подкатегории не получается почему-то. Может что-то не так прописываю? помогите пожалуйста.

P.S. извините, всё нормально) не подумал что надо записей побольше добавить)
<?
// основные категории
$categories = get_categories( array(
    'parent'  => 0
) );
foreach ( $categories as $category ) {
    // подкатегории
    $sub_categories = get_categories( array(
        'parent'  => $category->term_id
    ) );
	echo '<h3 class="title-1 border-color-1">'.$category->name.'</h3>';
    foreach ( $sub_categories as $sub_category ) {
        // записи
        $posts = get_posts( array( 
            'category' => $sub_category->term_id,
            'posts_per_page' => 5,
            'orderby' => 'date',
        ) );
		
		echo '<h3 class="title-1 border-color-1">'.$sub_category->cat_name.'</h3>';
		
        foreach ( $posts as $post ) {
			setup_postdata($post);
			echo '<a href="'.the_permalink().'">'.the_title().'</a><br>';
        }
    }
}
?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы