Ph: 0800 4 WPNET | Contact
Ph: 0800 4 WP NET | My WP NET | Contact

WordPress 4.2 Update Progress

WordPress 4.2 Update Progress
May 5, 2015 GB

Most of our hosting customers have now been updated to the latest WordPress version: 4.2.1.

Those remaining on v4.1.1 are mostly WooCommerce sites, as we are still completing testing with this plugin and it’s many extensions.

We recommend that WooCommerce users remain on v4.1.4 until we have finished testing WordPress 4.2.x with WooCommerce. The reason for this is to do with taxonomy term splitting in WordPress 4.2+.

Term Splitting in WordPress 4.2+

WordPress 4.2 fixes a long-standing bug (more of a limitation, than an actual bug really) whereby two or more different taxonomies that had a common term would share the same ID. This often went unnoticed, but it could sometimes lead to those annoying “slug-n” URL’s, where one of the shared terms has a “-n” added to the end of it (“n” being a numeral).

For more technical details about this, please read the blog post on make.wordpress.org. Theme developers and plugin authors should also read Working with split terms in 4.2+ for important information on how to update their themes and plugins to support term splitting.

This summary from the Plugin Handbook explains the situation very well:

Prior to WP 4.2, terms in different taxonomies with the same slug (for instance, a tag and a category sharing the slug “news”) shared a single term ID. Beginning in WordPress 4.2, when one of these shared terms is updated, it will be split: the updated term will be assigned a new term ID.

In the vast majority of situations, this update will be seamless and uneventful. However, some plugins and themes store term IDs in options, post meta, user meta, or elsewhere.

So, as you can see, this does create a possible conflict if any theme or plugin stores term ID’s as static data in the database. Once updated to 4.2, if you were to go and edit a shared-term taxonomy, WordPress will “split” it off from it’s shared term, modifying it’s term ID. If that term ID happens to be stored in the database by a plugin or theme, then the reference will be broken, because the term ID will have changed.

What to do?

So, that’s all well and good … but what should you do about it, and how can you test whether your site could be adversely affected by term splitting? Good question.

To start with, download and activate the Find Shared Terms plugin.

Note: WP NET customers will find that this plugin has already been installed for them.

The Find Shared Terms plugin will create a WP Admin page under the Tools menu. On this page any shared terms on your WP site will be listed. The page looks like this:

68747470733a2f2f636c6475702e636f6d2f3371394c68435576636f2d3330303078333030302e706e67

 

Please note that just because you have shared terms on your WordPress site does not necessarily mean that you will have any problems — the issues only occur if your theme or plugins store term IDs in the database for some reason — most of them do not do this. Furthermore, the issue will only arise should you go and actually edit one of the shared terms — only at this point will the term be “split” and it’s ID updated.

From here it gets a little more vague — exactly what do about any shared terms depends on what the taxonomy is, how it’s used and whether you actually have any items using the term at all. In our testing, many shared terms have no posts associated with them, and so can simply be saved as-is, this will cause it to be split and so it will no longer be a “shared term”. In some cases, you may wish to simply delete one of the shared terms, if it is not being used.

We would like to encourage WP NET customers to please check the Tools -> Find Shared Terms page and see what Taxonomies on their site may be affected. If you need any further help from this point, please open a support ticket and our WP NET Support team will be happy to help.