WordPress.org

Ready to get started?Download WordPress

Forums

How to list categories and posts on one page (8 posts)

  1. slidese
    Member
    Posted 7 years ago #

    Hi,

    I have an FAQ category on my blog. It has several sub-categories and in each of those several posts. How do I create a loop that will output like this:


    FAQ
    Sub-Category 1
    Question 1
    Question 2
    Sub-Category 2
    Question 3
    Sub-Category 3
    Question 4

    Where each "Question" is a link to the actual blog post.

    And how would I do this dynamically? So that I can have one "category.php" file that will take any category (not just the FAQ one) and display a page like that?

    Mike

  2. alainS
    Member
    Posted 7 years ago #

  3. slidese
    Member
    Posted 7 years ago #

    Thanks, but I'm developing a theme and would like to incorporate this feature as a standard.

    Is this really that hard to program using a WP_Query or The Loop (in some way)?

    If I click a category (ie, ?cat=3), how do I "get" that var? Is the only way to get it through $_GET? And after that, constructing a query that gives me all subcategories of that one, and for each of those, give me all posts.

    Does anyone have any ideas about doing that?

    Mike

  4. slidese
    Member
    Posted 7 years ago #

    The request is ?cat=2, and this code does the trick.


    $cat_shown = array();
    foreach ($category_cache as $cat_array) {
    foreach ($cat_array as $the_category) {
    $the_ID = $the_category->cat_ID;
    if (in_array($the_ID, $cat_shown))
    continue;
    $cat_shown[] = $the_ID;
    echo $the_category->cat_name;
    echo "<br>\n";
    }
    }

    And use $posts to get all posts from cat=2 and sub-categories.

    Mike

  5. marketanomaly
    Member
    Posted 7 years ago #

    This is exactly what I want to do. Could you explain how this is implemented? Thanks.
    -Adam

  6. marketanomaly
    Member
    Posted 7 years ago #

    You can also use the get_posts template tag to list the posts in a particular category. I found the implementation of this tag to be very easy. http://codex.wordpress.org/Template_Tags/get_posts

  7. mfapsj
    Member
    Posted 7 years ago #

    I would love to have that option - but I don't get how I should include the code provided by slidese (Mike). Can somebody please help?!

  8. sarahd
    Member
    Posted 6 years ago #

    For what it is worth, I was looking for a way to cycle through categories and list all posts on one page in WordPress MU. I tried Alex King's Articles Plugin but couldn't get it to display anything. I ended up combining the post and category queries in a page template. This was pretty simple and works for what I've needed so far-- I also like that gives me flexibility in what is presented and how it is styled.

    I started with the category query using parameters and styling to show empty categories, exclude Uncategorized, and show the category names styled as headers:

    <?php
      $categories=  get_categories('hide_empty=0&exclude=1');
      foreach ($categories as $cat) {
      $catname = $cat->cat_name;
      $catid = $cat->cat_ID;
      echo '<h2>'.$catname.'</h2>';
      ?>

    Then I started the post query calling $catid into the parameters and ordering posts alphabetically:

    <?php
     $posts = query_posts($query_string . 'cat='.$catid.'&orderby=title&order=asc&posts_per_page=-1'); 
    
     global $more;
    // set $more to 0 in order to only get the first part of the post
    $more = 0; 
    
    // the Loop starts here
    if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    After that I formatted the_title and the_content to suit my needs and followed up with

    <?php endwhile; else:
    _e('There are no posts in this category yet.');
     endif;
      } //end category query
      ?>

    Not sure that is the best way to do something like this, but I'm adding it here for what it is worth.

Topic Closed

This topic has been closed to new replies.

About this Topic