Opened 14 years ago
Closed 14 years ago
#15008 closed defect (bug) (fixed)
Deleting a category can orphan posts from the term_relationships table
Reported by: |
|
Owned by: |
|
---|---|---|---|
Milestone: | 3.1 | Priority: | normal |
Severity: | normal | Version: | 3.0 |
Component: | Taxonomy | Keywords: | has-patch regression |
Focuses: | Cc: |
Description (last modified by )
Steps to reproduce:
1) Create a new category
2) Place a post in only that category
3) Delete that category
4) Observe that post no longer exists in term_relationship table (also causes posts to not appear in edit-posts list when filtered for 'uncategorized').
Cause of problem:
Direct calls to wp_delete_term() bypass logic and args previously populated in wp_delete_category().
Possible solutions:
Add logic from wp_delete_category() above each call for wp_delete_term and pass the args directly to wp_delete_term or conditionally check for taxonomy type and pass to wp_delete_category (a wrap for wp_delete_term) to pick up needed logic.
The attached diff takes approach two and passes to wp_delete_category if 'category' == $taxonomy
Attachments (4)
Change History (16)
#1
follow-up:
↓ 3
@
14 years ago
- Keywords regression added; dev-feedback removed
- Milestone changed from Awaiting Review to 3.1
- Version changed from 3.0.1 to 3.0
I think we should deprecate wp_delete_category() (also being used in XMLRPC) and move the logic into wp_delete_term().
#3
in reply to:
↑ 1
@
14 years ago
Replying to nacin:
I think we should deprecate wp_delete_category() (also being used in XMLRPC) and move the logic into wp_delete_term().
+1
#4
@
14 years ago
Updated diff deprecates wp_delete_category and places logic inside wp_delete_term.
#6
follow-up:
↓ 7
@
14 years ago
Can we abstract that functionality out of wp_delete_term() perhaps?
eg, An action fired within wp_delete_term() which has a functon hooked to manage the category weirdness's?
#9
@
14 years ago
Decided there wasn't much harm in leaving the function as an undeprecated wrapper. We have quite a few of those in the taxonomy API for tag and category functions wrapping generic term functions.
if taxonomy is category, send through wp_delete_category wrapper function