2014-01-23 7 views
-1

Мне нужно получить последние 5 сообщений из подкатегорий категории. Как это сделать?Получить последние 5 сообщений из подкатегорий категории с петлей в Wordpress

// редактировать Так я получил это работает на фиксированную сумму должностей в подкатегорию:

<?php $descendants = get_categories(array('child_of' => 3)); ?> 
<?php $cnt=1; 
foreach ($descendants as $child) { ?> 
<?php $catPosts = new WP_Query(); 
    $catPosts -> query("showposts=3&cat=$child->term_id"); 
?> 
<ul class="postPreviews"> 
<?php while ($catPosts->have_posts()) : $catPosts->the_post(); ?> 
<li><a href="<?php the_permalink() ?>"> 
    <div class="descOverlay"> 
     <img src="<?php the_field('teaserimage'); ?>" /> 
     <div class="overlayTitle"> 
      <div class="imgwrap"><img src="<?php echo get_template_directory_uri(); ?>/opaq.png"></div> 
      <span><?php the_title(); ?></span></div> 
     </div> 
    </a></li> 
<?php endwhile; 
}?> 
+0

Я думаю, что вопрос достаточно ясен, даже если он короткий. Если вы действительно хотите помочь и нуждаетесь в дополнительной информации, дайте мне знать. – schliflo

+0

Позвольте мне расширять, SO вопросы должны содержать код, должны сообщать нам, что вы пытались, где это не удалось ... (http://stackoverflow.com/help/how-to-ask) –

+0

Я ничего не пробовал, потому что Я не могу придумать решение. Я попытался найти ответ на свой вопрос в Google, но безуспешно. – schliflo

ответ

2

Я хотел бы использовать get_categories() для перебора всех подкатегорий и добавить их идентификаторы в массив. Затем вы можете использовать этот массив для параметра category__in 'для нового WP_Query.

<?php 
    $categories = get_categories(array(
     'child_of'=>'your_category_id' 
    )); 

    $subcategories = array(); 

    foreach ($categories as $category) { 
     $subcategories[] = $category->cat_ID; 
    } 
?> 

<?php 
    $new_loop = new WP_Query(array(
    'post_type' => 'post', 
    'category__in' => $subcategories, 
    'posts_per_page' => 5 
    )); 
?> 

<?php if ($new_loop->have_posts()) : while ($new_loop->have_posts()) : $new_loop->the_post(); ?> 

    // put your inside the loop code here 

<?php endwhile; else: ?> 
    No posts found 
<?php endif; ?> 
<?php wp_reset_query(); ?> 
+0

Именно то, что я искал. Большое спасибо! – schliflo

Смежные вопросы