Support » Fixing WordPress » Listing only child categories in list on category page?

  • 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.


Viewing 8 replies - 1 through 8 (of 8 total)
  • For the side problem > see:
    It must be used in the Loop.

    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…

    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

    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? 🙂

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

    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.

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

    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; ?>

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Listing only child categories in list on category page?’ is closed to new replies.