I was recently implementing a custom post type in WordPress, and added WPML so I could translate it's title & content.

This post type (city) also has some custom metaboxes (metabox.io) like:

  • Coordinates
  • Address
  • isFeatured
  • etc...

The problem I'm facing now is these custom fields get stored against the post ID, and need to be added for each language (different languages are different post ID's). This is neither convenient or practical, given that I must now duplicate all the values from these fields in each language, and if there's a mistake one same city may have different coordinates in different languages.

My question is, what would be the best way to tackle this problem? How can I have one set of metadata relate to all the translations of a same post? This way I only need to add it once for each city, and edit it in one place if needed.



I've encountered exact same problem. Bad news it is not well supported by WPML...

To be more specific it is supported in a very strange way: syncing values for selected custom metaboxes is supported but only "one way" (from original to translated contents but not the other way round).

So in your city example you will be able only to change coordinates when editing post in original language eg. English, but when you will try to change them when editing translation eg. Spanish nothing will happen (your input gets overwritten by original values after saving).

This problem is better described on WPML support forum: https://wpml.org/forums/topic/post_meta-copy-only-copies-one-way-it-should-be-named-sync-and-just-sync/

Unfortunately support response to that issue is rather "negative". They don't promise to fix it and claim that is regular WPML behaviour, not a bug.

It is also worth mentioning that all this "one way" sync is only available if you have Multilingual CMS version (for $79).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.