[wp-trac] [WordPress Trac] #30335: Splitting shared terms on term update breaks backward compatibility when using an old term_id
WordPress Trac
noreply at wordpress.org
Thu Nov 13 19:26:51 UTC 2014
#30335: Splitting shared terms on term update breaks backward compatibility when
using an old term_id
--------------------------+-------------------
Reporter: boonebgorges | Owner:
Type: defect (bug) | Status: new
Priority: high | Milestone: 4.1
Component: Taxonomy | Version: trunk
Severity: major | Keywords:
Focuses: |
--------------------------+-------------------
See #5809.
When a shared term is split into two separate terms, one of the terms will
have a new term_id. This will cause problems for anyone who has previously
stored a term_id, and is using it to look up that term post-split.
An example. Say you have a term with `term_id=5` and `slug=foo`. In
`wp_term_taxonomy`, you have two rows that look like this:
{{{
term_id term_taxonomy_id taxonomy
---------------------------------------
5 8 post_tag
5 9 category
}}}
Now, say you run the category 'foo' through `wp_update_term()`. It will be
recognized as a shared term, and will be split into a new row in
`wp_terms` (say, `term_id=10`).
If you are running a plugin or other customization that has previously
stored the term_id 5 to refer to the *category* 'foo', future lookups will
not work. Examples:
1. `get_term( 5, 'category' )` will return null.
2. Building a `Walker_CategoryDropdown` and passing `selected=5` will
break the pre-selection.
3. People who are making direct SELECT (or, god forbid, UPDATE) queries
using the `term_id` will find their queries failing.
4. And maybe other stuff.
Note that, as far as I can find, none of these things are happening in
core.
I'll follow up with some next steps.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/30335>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list