Title: An update on shared term splitting
Author: John Blackbourn
Published: November 25, 2014
Last modified: July 10, 2015

---

 [  ](https://profiles.wordpress.org/johnbillion/) [John Blackbourn](https://profiles.wordpress.org/johnbillion/)
10:35 pm _on_ November 25, 2014     
Tags: [4.1 ( 40 )](https://make.wordpress.org/core/tag/4-1/),
[dev-notes ( 648 )](https://make.wordpress.org/core/tag/dev-notes/), [roadmap ( 9 )](https://make.wordpress.org/core/tag/roadmap/),
[taxonomy ( 16 )](https://make.wordpress.org/core/tag/taxonomy/)   

# An update on shared term splitting

Background reading: [#30335](https://core.trac.wordpress.org/ticket/30335) and the
notes on shared term splitting in https://make.wordpress.org/core/2014/11/20/dev-
chat-summary-november-19th/.

As part of [the work on the taxonomy roadmap in 4.1](https://make.wordpress.org/core/2014/11/12/an-update-on-the-taxonomy-roadmap/),
shared terms (terms which are shared across more than one taxonomyTaxonomy A taxonomy
is a way to group things together. In WordPress, some common taxonomies are category,
link, tag, or post format. [https://codex.wordpress.org/Taxonomies#Default_Taxonomies](https://codex.wordpress.org/Taxonomies#Default_Taxonomies).
due to a slug collision) now get split when the term gets updated. The end result
being that editing a term in one taxonomy will no longer affect the term in another
taxonomy.

Many plugins store term IDs in post metaMeta Meta is a term that refers to the inside
workings of a group. For us, this is the team that works on internal WordPress sites
like WordCamp Central and Make WordPress., options, terms (!), etc, and the side
effect of shared term splitting is that these caches can break when the ID of a 
term they reference changes. Not only that, but the breakage (and the cause) can
be invisible to the user and hard to track down if they do notice it.

Following [a discussion in #core Slack](https://wordpress.slack.com/archives/core/p1416950254003761)
I’m proposing that shared term splitting is removed from 4.1 and we’ll add it back
in for 4.2 and allow a full release cycle to get the word out to developers about
the change. I’ll make the final decision during tomorrow’s dev chat.

Thanks in particular to [@mboynes](https://profiles.wordpress.org/mboynes/) for 
his time spent on this.

(Note that this only affects existing terms; new terms do not get shared since [r30240](https://core.trac.wordpress.org/changeset/30240).)

[#4-1](https://make.wordpress.org/core/tag/4-1/), [#dev-notes](https://make.wordpress.org/core/tag/dev-notes/),
[#roadmap](https://make.wordpress.org/core/tag/roadmap/), [#taxonomy](https://make.wordpress.org/core/tag/taxonomy/)

### Share this:

 * [  Threads ](https://make.wordpress.org/core/2014/11/25/an-update-on-shared-term-splitting/?share=threads)
 * [  Mastodon ](https://make.wordpress.org/core/2014/11/25/an-update-on-shared-term-splitting/?share=mastodon)
 * [  Bluesky ](https://make.wordpress.org/core/2014/11/25/an-update-on-shared-term-splitting/?share=bluesky)
 * [  X ](https://make.wordpress.org/core/2014/11/25/an-update-on-shared-term-splitting/?share=x)
 * [  Facebook ](https://make.wordpress.org/core/2014/11/25/an-update-on-shared-term-splitting/?share=facebook)
 * [  LinkedIn ](https://make.wordpress.org/core/2014/11/25/an-update-on-shared-term-splitting/?share=linkedin)

 1.  ![](https://secure.gravatar.com/avatar/7fab7a27d6eb1e11d63e8a5963991d4adacce3ae704dc2fb7f53d97fad88edce?
     s=32&d=mm&r=g)
 2.   [George Stephanis](https://profiles.wordpress.org/georgestephanis/)  3:21 pm 
     _on_ November 26, 2014
 3.  Sad, but understandable.
 4.  ![](https://secure.gravatar.com/avatar/86bb3fa9fcfe57b8d313e527e9e02bde810951b25722b4717b0953a6c8db41b2?
     s=32&d=mm&r=g)
 5.   [Eric Mann](https://profiles.wordpress.org/ericmann/)  3:23 pm _on_ November 
     26, 2014
 6.  Considering this change was announced by Nacin in the roadmap for cleaning up 
     terms back in July of 2013, I’m not sure waiting just one more release cycle will
     give us much more breathing room. We’ve all known this was coming for quite a 
     while, you’re just making the call “when.”
 7.  Whether we release the update in 4.1 or 4.2, there will always be developers who“
     missed the announcement.” That’s the point of announcing now, reinforcing pluginPlugin
     A plugin is a piece of software containing a group of functions that can be added
     to a WordPress website. They can extend functionality or add new features to your
     WordPress websites. WordPress plugins are written in the PHP programming language
     and integrate seamlessly with WordPress. These can be free in the WordPress.org
     Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
     or can be cost-based plugin from a third-party. testing (and updating) during 
     the release betaBeta A pre-release of software that is given out to a large group
     of users to trial under real conditions. Beta versions have gone through alpha
     testing in-house and are generally fairly close in look, feel and function to 
     the final product; however, design changes often occur as part of the process.,
     and maintaining the “tested up to” in plugin headers.
 8.  Am I concerned we’ll break things by releasing this? Not really. It’s a major 
     releasemajor release A release, identified by the first two numbers (3.6), which
     is the focus of a full release cycle and feature development. WordPress uses decimaling
     count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and
     comparable in scope. with a generous testing phase that developers should use 
     to their advantage. Anyone releasing a plugin as “tested up to 4.1” that doesn’t
     actually test the new term changes is releasing at their own risk.
 9.   * ![](https://secure.gravatar.com/avatar/5cc12be051fe02dec266f899b7613325ff3b12b6f6e4f1a85850ed677216cf17?
        s=32&d=mm&r=g)
      *  [Boone Gorges](https://profiles.wordpress.org/boonebgorges/)  4:12 pm _on_
        November 26, 2014
      * Eric – I’m sympathetic to this point of view in general – I think that, for
        a large class of developers, another release cycle isn’t going to make any 
        difference. But I think there’s a not-insignificant group who will be happy
        to update their sites and plugins, but they’ll need sufficient notice and documentation.
        And while you’re right that these changes have been in the works for a long
        time, the specific ramifications and the specifics of the fixes (like the new‘
        split_shared_term’ hook) are pretty much brand new.
      * Term splitting will be dropped back into trunktrunk A directory in Subversion
        containing the latest development code in preparation for the next major release
        cycle. If you are running "trunk", then you are on the latest revision. immediately
        after 4.1 is released, and will be accompanied with transition guides for developers.
        Then we’ll have done our due diligence.
      * Believe me when I say that I’m more disappointed than anyone else for this 
        to be delayed yet again. However, we’ve been living with the current situation
        for years now. Another couple months isn’t going to make a huge difference 
        in the long run.
 10. ![](https://secure.gravatar.com/avatar/d7f59286b1dd707bfcfa8b4f4ce492be2b79973271369c91e4ce39e56eea3289?
     s=32&d=mm&r=g)
 11.  [programmin](https://profiles.wordpress.org/programmin/)  4:15 pm _on_ November
     29, 2014
 12. How will this affect those of us using 4.1 Beta1 currently, when upgrading?

Comments are closed.

# Post navigation

[← Multisite Office Hours (Redux)](https://make.wordpress.org/core/2014/11/21/multisite-office-hours-redux/)

[Agenda for today’s dev chat in #core Slack… →](https://make.wordpress.org/core/2014/11/26/agenda-for-november-26th-dev-chat/)