#16397 closed feature request (wontfix)
Selecting Sub-Category should select parent category.
Reported by: | sterlo | Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 3.1 |
Component: | General | Keywords: | |
Focuses: | Cc: |
Description
If you have the current structure:
- Category A
- Child Category B
Currently in WordPress if you put any posts into the child category, it will treat as though it's also a part of the parent category.
Meaning that if I don't specifically select the parent category and I just select the child category and save...if I do a query on the parent category - it will have increased in value.
Would it not make sense to have it automatically select all parent categories of a child category when selecting what categories a post belongs to?
Change History (6)
#1
@
14 years ago
- Milestone Awaiting Review deleted
- Resolution set to wontfix
- Status changed from new to closed
#3
@
14 years ago
I submit this UseCase without any plugins installed:
Created a parent category and a child category:
mysql> select * from wp_terms; select * from wp_term_taxonomy;
Results (terms):
term_id | name | slug | term_group |
22 | omgwtfbbq | omgwtfbbq | 0 |
23 | lulz | lulz | 0 |
Results (taxonomy):
term_taxonomy_id | term_id | taxonomy | description | parent | count |
22 | 22 | category | This is a parent category. | 0 | 0 |
23 | 23 | category | This is a child of omgwtfbbq. | 22 | 0 |
I then created a post! Actually...I created three.
One that belongs to the parent category.
One that belongs to the child category (parent no selected).
One that belongs to both.
Now...the terms show up as thus:
select * from wp_term_taxonomy;
term_taxonomy_id | term_id | taxonomy | description | parent | count |
22 | |22 | category | This is a parent category. | 0 | 2 |
23 | |23 | category | This is a child of omgwtfbbq. | 22 | 2 |
So this reflects your expectation in the form of data.
But if I ask WordPress if the Parent category has posts in it:
$test=get_posts('category_name=omgwtfbbq'); echo count($test);
Result: 3
So if we're going to treat it as though it actually has 3 posts in it...why not...actually have 3 posts in it?
I understand we can right a plugin to "fix" problems. Or we could ... fix the problems.
If this is not a problem, I will defer to your judgment.
#5
follow-up:
↓ 6
@
14 years ago
- Resolution set to wontfix
- Status changed from reopened to closed
The default has been that querying the posts in a category queries posts in all subcategories. But there is a difference between being implicitly in a category (due to heritage) and being explicitly in a category (due to user selection). If we checked all parent categories, the distinction between implicit and explicit would be lost.
Consider the hierarchy A > B > C > D. If selecting D selects C, B, and A, a user would have to deselect four boxes to remove a category from D. Or if you do that for them, the interface becomes twitchy when they want a category to be in B and D, but not A and C. People would also suddenly have a lot more categories be shown on their entries — categories they had previously just used as containers.
Real life example: I have Tech, with subcategories WordPress, Photography, and Apple. Tech is for general tech stuff. If it relates to WordPress, Photography, or Apple, I put it in that (but do not select Tech). All four categories' content shows up when browsing to category/tech/. If Tech were automatically selected when I selected WordPress, all WordPress posts would say: "Categories: Tech, WordPress" It's redundant information. And it's not how I categorized it. In the above example, every D post would say: "Categories: A, B, C, D." Every C would say "Categories: A, B, C." If you want a breadcrumb display, you should do that specifically, not have the category system dump every parent in the list along with the explicit category selections.
#6
in reply to:
↑ 5
@
14 years ago
Replying to markjaquith:
The default has been that querying the posts in a category queries posts in all subcategories. But there is a difference between being implicitly in a category (due to heritage) and being explicitly in a category (due to user selection). If we checked all parent categories, the distinction between implicit and explicit would be lost.
Thank you!
Some people use parent categories as mere containers, and don't ever want things to show that parent category when the list of categories for that post is output. I don't see this changing — it would be unexpected behavior for a lot of people.
It would be fairly trivial to write a plugin that accomplished this behavior, however. If someone writes one, link to it from this ticket!