2

i'm using this plugin to show an exapandable/collapsible widget-menu in my sidebar. http://wordpress.org/extend/plugins/folding-category-widget it works very well!

the question, not directly connected with this plugin, is: how can i also show in the list, all posts related to a category (title + a href)?

for example:

category A 
         post1
         post2

category B
         post3
         post4

category C
         post5

thanks a lot in advance.

1 Answer 1

2

Well the simplest way I can think of is something like this...

<ul class="categories">
<?php
    $categories = get_categories(); //can add parameters here to swtich the order, etc;
    if(!empty(categories)):
        foreach($categories as $i => $category):
?>

<li class="category">
    <span><?php echo $category->name ?></span>

        <?php

        query_posts('posts_per_page=-1&cat=' . $category->term_id);
        if ( have_posts() ) :
        ?>
        <ul class="posts">
        <?php
             while ( have_posts() ) : the_post(); //we make a loop for each category, 
        ?>
            <li class="post">
                <a href="<?php the_permalink();?>"><?php the_title();?></a>
            </li>
            <?php endwhile; ?>
        </ul>
            <?php endif; ?>
        <?php wp_reset_query(); ?>
</li>
        <?php endforeach; endif; ?>
</ul>

Warning: this is untested code, but it should work just fine. (Just add it to your sidebar.php file or wherever you generate your sidebar.)

3
  • Plus it ought to be said that as the number of categories increase, your going to start racking up a fair few database queries! Dec 14, 2010 at 2:20
  • That's true. Another way to do this would be to just get all the posts and all the cateogries, and for each category, go through the posts array and include them if thery're in that certain category. That would be more database efficient, but you still have to parse the array.
    – Cronco
    Dec 14, 2010 at 11:08
  • 1
    I'm using this to show posts without categories in my sidebar. Just worked! Tks! May 22, 2020 at 18:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.