Creating a Megadropdown with get_pages and get_categories
-
Hi
Im trying to build a customizable mega drop down (example) with get_pages and get_categories
Does anybody have a good solution for controling the depth for get_pages and get_categories?
Help would be greatly apprechiated.
The reason im not using list_pages / cats /wp_menu etc is that I want to be able to control the output to do things like top a menu with the category discription.
Pages:
Parents work the way i want. However$subpages = get_pages('child_of='. $page->ID); foreach ($subpages as $subpage);
Only gives me the lowest level (grandchildren).
Is there someway to set the depth?Categories is quite simualar exept here i get both children and grandchilden.
<ul id="topnav"> <li><a href="<?php echo get_option('home'); ?>/" class="on">Home</a></li> <?php // Create page navigation with supages in a contatiner $pages = get_pages( 'child_of=0&parent=0'); $pageID = $page->ID; foreach($pages as $page) { $subpages = get_pages('child_of='. $page->ID); if (count($subpages)>0){ // If the subpage has children give it the class hasChild and don´t close the LI ?> <li class="hasChild"><a href="<?php echo get_page_link($page->ID) ?>"><?php echo $page->post_title ?></a> <?php } else { // If the page does´nt have any childen. ?> <li><a href="<?php echo get_page_link($page->ID) ?>"><?php echo $page->post_title ?></a></li> <?php } //end else ?> <?php // If has subpages if (count($subpages)>0){ echo "<div class='sub'><ul>"; // Generate subpages in sublevel - !!! THIS RETURNS ONLY THE LOWEST LEVEL PAGE !/%#&%! foreach ($subpages as $subpage);{?> <li><a href="<?php echo get_page_link($subpage->ID) ?>"><?php echo $subpage->post_title ?></a></li> <?php } //end foreach subpage ?> <?php echo "</ul></div></li>"; // Close the Child UL DIV and parent LI ?> <?php } //end if ?> <?php } //end foreach ?> <?php // Create category navigation with posts for each subcat $categories = get_categories(); $catID = $cat->cat_ID; foreach ($categories as $cat) { if($cat->category_parent == 0){ //If is a top level category $subcategories = get_categories('child_of='. $cat->cat_ID); if (count($subcategories)>0){ ?> <li class="haschild"><a href="<?php echo get_category_link( $cat->cat_ID); ?>"><?php echo $cat->name; ?></a> <?php } /* end if has subcats */ else { // else; does not have childen ?> <li><a href="<?php echo get_category_link( $cat->cat_ID); ?>"><?php echo $cat->name; ?></a></li> <?php } //end else ?> <?php // Get the subcats !!! THIS RETURNS ALL DECENDING LEVELS. $subcategories = get_categories('child_of='. $cat->cat_ID); if (count($subcategories)>0){ echo "<div class='sub'>"; foreach ($subcategories as $scat) { ?> <ul> <li><h2><a href="<?php echo get_category_link( $scat->cat_ID); ?>"><?php echo $scat->name; ?></a></h2></li> <?php query_posts('cat='.$cat->cat_ID); // Get posts from that category. if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; endif; //end foreach subcat ?> <?php echo "</ul>"; } echo "</div> </li>"; // Close the Child UL DIV and parent LI } //endif has subcats ?> <?php } //end if parent ?> <?php } //end foreach ?> </ul> <!-- topnav -->
Viewing 2 replies - 1 through 2 (of 2 total)
Viewing 2 replies - 1 through 2 (of 2 total)
- The topic ‘Creating a Megadropdown with get_pages and get_categories’ is closed to new replies.