WordPress 4.2 is approaching and includes significant updates to taxonomy handling. WPML 22.214.171.124 addresses this change and allows you to develop against the upcoming WordPress 4.2 release.
Surprises are great when you have a birthday but not when software updates (automatically). April is going to be a busy month for many people with Easter and Hanukkah holidays. So, we’ve decided to push forward this update for WordPress 4.2, so that you have one surprise less to deal with over the busy holiday season.
If you are working on new client sites, we recommend that you switch to WordPress 4.2 and to this new version of WPML. For production sites, you can safely update to WPML 126.96.36.199. It runs fine on older WordPress versions and will be fine on WordPress 4.2 when it’s released.
Update to WPML 188.8.131.52 (or later) before switching to WordPress 4.2
WordPress 4.2 is not yet ready for production sites. However, please take note that before you update to it (once WP 4.2 is officially released), you need to update WPML.
WordPress 4.2 made a significant change in taxonomy handling. Older versions of WPML will not work with WordPress 4.2 correctly.
We recommend that you update WPML now and not have to worry about it later.
Bug Fixes in WPML 184.108.40.206
This version, besides including the changes for WordPress 4.2, includes a number of fixes:
- Fixed languages order settings retention
- Fixed “Catchable fatal error: Object of class stdClass could not be converted to string” when visiting the plugins page or scanning the wpml-config.xml file.
- Fixed “Duplicate featured image to translation” checkbox not getting automatically checked
This version improves the performance when duplicating posts and synchronizing terms at the same time. It also comes with an updated version of WPML’s Installer, which is faster and includes important changes for WordPress 4.2 compatibility.
WordPress 4.2 Taxonomy Changes
Prior to WordPress version 4.2 it was possible to share a term between multiple taxonomies. This meant that you could for example have a term named “index”, that was a category as well as a post_tag.
WordPress handled this terms splitting by assigning each term a term_id and a term_taxonomy_id. The term_id was the same for each term across all taxonomies, while the term_taxonomy_id was a unique number associated with a specific term and taxonomy.
Hence, if the term “index” was associated with the term_id “3”, it would also be associated with two term_taxonomy_ids for its taxonomies “category” and “tag”.
WPML allows setting specific taxonomies to be either translatable or not, so we used the term_taxonomy_id to identify terms and and not the term_ids. This meant that WPML had to internally synchronize all the term_taxonomy_ids associated with a specific term_id, in case a user made changes to a term that was shared between taxonomies.
WordPress team came up with a roadmap to untangle this complication. WordPress 4.1.1 stopped creating shared terms. WordPress 4.2 cleans up the database and splits shared terms. Instead of having one term shared for multiple taxonomy, you will now have different terms, one for each taxonomy. Fortunately, WordPress 4.2 also provides an API that allows plugins (like WPML) to know which terms have been split (hurray!).
WPML responds to this change by adding migration logic which would update term translation. We check which terms have split and automatically duplicate translations for them. The idea is that you don’t need to do any editing on your site when terms are split in the database. You can just update to WordPress 4.2 and things take care of themselves.
Please note that plugins and themes that use taxonomy are effected by WordPress 4.2. We think that this is a very welcome change. It simplifies the logic for handling taxonomy and makes future development easier. However, we recommend that you check the compatibility status of your theme and other plugins before you update to WordPress 4.2. Pay special attention to themes and plugins that make heavy use of taxonomy, as they might need updates.
WPML 3.2 Status
WPML team is back to version 3.2, with all the new features it promises. We wanted to push this update for WordPress 4.2 before Easter, so we pushed out this version. After Easter we are planning to release the first release candidate for WPML 3.2.
Want to Review WPML Translations?
We are completing a big update for translations for WPML to 16 languages. This update includes WPML and all its components. We want translation to be complete and sensible.
WPML team includes people from different countries in the world, so we are already reviewing translations to most languages. However, we are looking for help reviewing translations to Japanese, Korean, and Swedish.
Of course, we can get these languages reviewed by independent translators, but it’s not the same as a real developer who speaks that language. If you speak Japanese, Korean or Swedish and can spare an hour, please leave your comment here. We’ll create an online test site for you and would love to receive your translation feedback.
How to Download
If you registered WPML on your site, you will receive this update automatically to all your sites. Log in to your admin dashboard and click on Plugins. You should see the update there. Please be sure to update all WPML components.
We hope that this early update of WPML for WordPress 4.2 will help you with the upcoming WordPress 4.2 release. If you have any questions, ideas or suggestions, leave your comments and we’ll get back to you.
Please remember that WordPress 4.2 is still in development. If you develop against WordPress 4.2 and notice anything strange with WPML, please report it in our technical forum.