Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New to the CF scene
    Join Date
    Jun 2009
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    How to list all categories and their posts under them - Implement in accordion

    Hi all, I'm very new to PHP and I don't know much, I had this idea I wish to implement on my blog using the Wordpress platform and I am looking for some help.

    What I'm trying to do here is create an accordion which lists all categories and their posts under them. For the accordion I used the simple accordion demonstrated here: http://www.dezinerfolio.com/2007/07/...pt-accordions/.

    Ok so first I needed a code to list all my categories with their respective posts under them as permanent links. With some research and personal mumbo jumbo coding I came up with this which seems to work fine:

    Code:
    <?php
    
    $cat_args=array(
      'orderby' => 'name',
      'order' => 'ASC'
       );
    $categories=get_categories($cat_args);
      foreach($categories as $category) {
        $args=array(
          'showposts' => 50,
          'category__in' => array($category->term_id),
          'caller_get_posts'=>1
        );
        $posts=get_posts($args);
          if ($posts) {
            echo '<p><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
            foreach($posts as $post) {
              setup_postdata($post); ?>
              <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
              <?php
            } // foreach($posts
          } // if ($posts
        } // foreach($categories
    ?>
    The above code successfully displays all my categories and their respective posts under each one of their names.

    This goes inside the loop under the
    Code:
    <?php if (have_posts()) :?>
    for those who know Wordpress.

    Next what I want to do is basically adjust this to an accordion menu I've written. The accordion HTML is pretty simple:

    Code:
    <div id="basic-accordian">
        <div id="test-header" class="accordion_headings header_highlights">Category 1</div>
    	<div id="test-content">
    	  <div class="accordion_child">
    	    <ul>
    	     <li>Post 1</li>
    	     <li>Post 2</li>
                 etc
    	    </ul>
    	  </div>
    	</div>
    
         <div id="test1-header" class="accordion_headings">Category 2</div>
    	<div id="test1-content">
    	  <div class="accordion_child">
    	    <ul>
    	     <li>Post 1</li>
    	     <li>Post 2</li>
                 etc
    	    </ul>
    	  </div>
    	</div>
    </div>
    So what is needed from what I can tell with my less than basic knowledge of PHP is that the name of the Category needs to be wrapped with the
    Code:
    <div id="testX-header" class="accordion_headings"> CATEGORY NAME </div>
    where X = ascending number, 1, 2, 3 etc, and wrap the
    Code:
    <div id="testXcontent"><div class="accordion_child">..posts..</div>
    around the actual posts of each category.

    This is probably done with a simple 'for' class or something? I have no clue, I've been troubling about it for 2 days now and can't seem to be able to arrive at a working solution on my own.

    Any help is much appreciated.

  • #2
    New to the CF scene
    Join Date
    Jun 2009
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts
    *bump*

    anyone?


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •