Listing only child categories in list on category page? (9 posts)

  1. vavroom
    Posted 9 years ago #

    Argh, I've just spent the last several hours trying to figure this out. I've found a few things on the Codex, and on the forum, but nothing seems to work the way it should. I hope someone might be able to help?

    Goal: When viewing a category page, if the category has children categories, list only the children categories for that category.

    This shouldn't be too difficult. From what I found on the site, the following line of code ought to list only the children categories for a particular category. Right?

    <?php wp_list_cats('child_of='.$this_category->cat_ID); ?>

    Except, it doesn't work. At all. Or rather, it works if I hard code a category id, which I don't want to do. So, I tried echoing just $this_category->cat_ID, didn't work. Same for $this_category. Which leads me to believe that's the issue. Alas, I'm not finding the answer anywhere on how to solve it.

    And it wouldn't address displaying that list only if the category has children, but that's a bridge I'll cross if I can get the other bit to work.

    Further, a side problem to this that may, or may not be related, something ain't right with the results loaded from the_category() On category.php, I am calling the_category('') just outside the loop. It works fine until I have children categories in a category. When that happens, if I load "category" on my menu, the_category displays "category child".

    I'm puzzled and would appreciate assistance on this.


  2. moshu
    Posted 9 years ago #

    For the side problem > see:
    It must be used in the Loop.

  3. vavroom
    Posted 9 years ago #

    Right, that did make it work, but is not giving me what I want at all, as it adds the category above every post. I only want the category name to appear at the top of my page, not above every post. In fact, I'm loading both name and description.

    If the category has children, I only want to display the parent category. I looked around, and this looks like it might be solved by a similar approach as the other issue in my original post, but since *that* doesn't work, I'm feeling beleaguered. Spending a couple hours on this is one thing, losing an entire day quite another. Even following the Codex to the letter doesn't work. Is this a case of the Codex being written for a prior version (and why aren't each article in the codex specifying which version it addresses, but that's a side issue! )

    Soooo, surely it's doable. How is the question...

  4. moshu
    Posted 9 years ago #

    I only want the category name to appear at the top of my page, not above every post.

    Which page? Which view?
    On a category template? Use http://codex.wordpress.org/Template_Tags/single_cat_title

  5. vavroom
    Posted 9 years ago #

    Ah ha! Thanks moshu, that solved *that* problem. I'd looked at that tag, but somehow got mixed up, thinking *it* had to be in the loop.

    All right... Next... How to do my original question? anyone? :) anyone? :)

  6. moshu
    Posted 9 years ago #

    Where did you find that code in your OP that doesn't work?

  7. vavroom
    Posted 9 years ago #


    I was trying just the "second part of the menu", but even the entire thing, or bits thereof don't work.

    //Edit: When I try the menu "as is", I get a parse error "unexpected $"... But I can't seem to find any stray issue that would cause the parse error.

  8. ma2t
    Posted 9 years ago #

    vavroom, any luck with this? it's exactly what im looking for also.

  9. snakefoot
    Posted 9 years ago #

    A possible solution for testing if a category has sub-categories:

    <?php if (is_category() && trim(wp_list_cats('recurse=1&child_of='. $cat))!='') : ?>

    <h4>Sub categories</h4>
    <ul class="sub-categories">
    <?php wp_list_cats('optioncount=1&sort_column=name&child_of='. $cat); ?>
    </ul >

    <?php endif; ?>

Topic Closed

This topic has been closed to new replies.

About this Topic


No tags yet.