Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I have the following code on a custom wordpress page:

    <?php 
    $cat_array = array();
    $args=array(
      'post_type' => 'post',
      'post_status' => 'publish',
      'posts_per_page' => 10,
      'caller_get_posts'=> 1
      );
    $my_query = null;
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
      while ($my_query->have_posts()) : $my_query->the_post();
        $cat_args=array('orderby' => 'none');
        $cats = wp_get_post_terms( $post->ID , 'category', $cat_args);
        foreach($cats as $cat) {
          $cat_array[$cat->term_id] = $cat->term_id;
        }
      endwhile;
    }
    if ($cat_array) {
      foreach($cat_array as $cat) {
        $category = get_term_by('ID',$cat, 'category');
        echo '<a href="' . esc_attr(get_term_link($category, 'category')) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a>'.'<br />';
      }
    }
    wp_reset_query();
?>

It lists the categories in order of most recently updated category first. How do I adjust the code to get parent categories only?

Example:

Basically, I would just like to display the top level category. For example:

Category - Subcategory - Sub Subcategory - Sub Sub Subcategory

Just Category.

share|improve this question
    
When you say parent categories, you mean only the categories at the very top of the tree, right? –  m0r7if3r Jan 28 '12 at 1:15
    
I believe so... Like when you create categories in WordPress, you can set a parent category for other categories... That's what I was referring to. –  WordPress Jan 28 '12 at 1:30
    
Well yes, but a category can have a parents and grandparents, etc, I'm trying to determine if you mean show the parents of the categories, or if you mean show only categories that don't have parents at all (as in they're at the top of the tree)...if you could clarify the original question, hopefully with an example, as to what specifically you'd like to show that would be outstanding. –  m0r7if3r Jan 28 '12 at 1:34
    
Basically, I would just like to display the top level category. For example: Category - Subcategory - Sub Subcategory - Sub Sub Subcategory Just Category. –  user12523 Jan 28 '12 at 1:44
    
I got it figured out. Thank you so much for your time. I do appreciate it very much. –  user12525 Jan 28 '12 at 3:04

1 Answer 1

This should do what you're looking for. It's untested, I just whipped it up really quick right now, but the concept is there.

function my_get_highest_parent( $id ) {
    $cat = get_category( $id );
    $parent = $cat->parent;

    if( $parent == 0 ) 
        return $id;
    else
        my_get_highest_parent( $parent );
}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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