Creating archive pages for children categories

Example:

video cat id = 4
video cat child category id’s = 7,8,9
news cat id = 5
news cat child category id’s = 11,12,13

Read More

I wanna display choosen categories ( like video and news ) in the different archive.php?

Is it possible thanks.

( sorry about my bad Eng )

Thanks for Chris S but its not what i want to do.

  <?php
$catPosts = new WP_Query();
$catPosts->query( array( 'category__and' => array(5,11,12,13), 'posts_per_page' => 5, 'orderby' => 'date', 'order' => 'DESC' ) );
  while ($catPosts->have_posts()) : $catPosts->the_post(); ?>
  <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
  <div class="meta">
   By <?php the_author() ?>
  </div>
<div class="content">
  <?php the_excerpt(); ?>
</div>

When I wrote the parent category id, i dont wanna write its child category id’s. When i choose the parent category id the system should its child category ids in the same archive page.

Related posts

Leave a Reply

3 comments

  1. Create 2 pages category-news.php & category-video.php & put this code in them. Then customize the markup for both as you like

    <?php
    $children = get_categories('child_of'=>get_query_var('cat'));
    $cat = array(get_query_var('cat'));
    foreach($children as $child)
        $cat[] = $child->term_id;
    $catPosts = new WP_Query( array( 'category__in' => $cat, 'posts_per_page' => 5, 'orderby' => 'date', 'order' => 'DESC' ) );
      while ($catPosts->have_posts()) : $catPosts->the_post(); ?>
      <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
      <div class="meta">
       By <?php the_author() ?>
      </div>
    <div class="content">
      <?php the_excerpt(); ?>
    </div>
    
  2. Taking a look at the Template Hierarchy in WordPress could be useful. WordPress allows you to use different templates for different categories based on Category slug (category-{slug}.php) or Category ID (category-{id}.php).

    As for different post types, you could do archive-{post_type}.php.

    Essentially, you could simply copy archive.php and rename it to category-{slug}.php, category-{id}.php or archive-{post_type}.php (depending on what suits you best) and then modify the existing code in the template to your needs. Just a thought.

  3. So you already know that you need to create a archive-category.php template for each category. Within each template you would call a custom query for each of those categories and their child categories. For example:

    <?php
    $catPosts = new WP_Query();
    $catPosts->query( array( 'category__in' => array(5), 'posts_per_page' => 5, 'orderby' => 'date', 'order' => 'DESC' ) );
      while ($catPosts->have_posts()) : $catPosts->the_post(); ?>
      <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
      <div class="meta">
       By <?php the_author() ?>
      </div>
    <div class="content">
      <?php the_excerpt(); ?>
    </div>
    

    This one shows the “news” category with it’s children included. Note that you can place any of your own tags to output whatever HTML you want.