Go to file
Boone Gorges ed639b408a Split shared taxonomy terms on term update.
When updating an existing taxonomy term that shares its `term_id` with
another term, we generate a new row in `wp_terms` and associate the updated
term_taxonomy_id with the new term. This separates the terms, such that
updating the name of one term does not change the name of any others.

In cases where a plugin or theme stores term IDs in the database, term splitting
can cause backward compatibility issues. The current changeset introduces
two utilities to aid developers with the transition. The `'split_shared_term'`
action fires when the split takes place, and should be used to catch changes in
term_id. In cases where `'split_shared_term'` cannot be used, the
`wp_get_split_term()` function gives developers access to data about terms
that have previously been split. Documentation for these functions, with
examples, can be found in the Plugin Developer Handbook. WordPress itself
stores term IDs in this way in two places; `_wp_check_split_default_terms()`
and `_wp_check_split_terms_in_menus()` are hooked to `'split_shared_term'` to
perform the necessary cleanup.

See [30241] for a previous attempt at the split. It was reverted in [30585]
for 4.1.0.

Props boonebgorges, mboynes.
See #5809.

git-svn-id: https://develop.svn.wordpress.org/trunk@31418 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-11 19:41:54 +00:00
src Split shared taxonomy terms on term update. 2015-02-11 19:41:54 +00:00
tests Split shared taxonomy terms on term update. 2015-02-11 19:41:54 +00:00
tools/i18n i18n tools: Sync makepot.php with i18n.svn. 2015-01-31 22:01:33 +00:00
.editorconfig .jshintrc is a json file and .editorconfig should treat it like a json file 2014-10-08 19:26:50 +00:00
.gitignore Ignore any local WP Cli config files. 2014-10-28 17:01:22 +00:00
.jshintrc
.travis.yml Travis hates tabs. 2015-02-06 05:57:54 +00:00
Gruntfile.js Media JS files: 2015-02-09 16:00:44 +00:00
package.json Split the media JS files into modules: 2015-02-09 00:42:28 +00:00
phpunit.xml.dist Exclude external-http tests when running phpunit. 2014-11-10 14:48:28 +00:00
wp-cli.yml
wp-config-sample.php Remove 'WordPress Language' reference from wp-config-sample.php. 2014-09-09 01:22:05 +00:00
wp-tests-config-sample.php