The Advanced Custom Fields (ACF) Post Object field allows you to create relationships between different posts, pages, or custom post types. To effectively use this field on your multilingual site, it’s important you first translate the content you want it to display.
Once you create a field group with the Post Object field, a dropdown appears when editing posts. This dropdown allows you to select one or more posts to show. For example, you can create a Post Object field named “Featured Posts” and choose to display several posts you want to showcase on your site.
Translating the Posts You Want to Display
When you add posts to the Post Object field, you need to choose them in the default language. For the posts to display in the right language on the front-end, you need to translate them. WPML will then show the translated version based on the language your site visitors choose.
If any of the posts selected in the Post Object field contain images, start by editing each post. Make sure that Duplicate uploaded media to translations is selected in the Language box in the right sidebar. This allows the images to appear on the translated version of the post.
How the Post Object Field Displays Untranslated Content
When using the ACF Post Object field with WPML, you might notice differences in how untranslated content appears on your WordPress site’s backend and front-end.
For example, consider this scenario:
You have a post called “Main Post” where you’ve added the ACF Post Object field and selected some posts for it to display.
You translate or duplicate this “Main Post” from English to Spanish.
The posts you selected in the Post Object field of the “Main Post” have not been translated into Spanish.
In this case:
On the backend, the Post Object field in the Spanish version of the “Main Post” will be empty because you haven’t translated the posts selected in the field into Spanish.
On the front-end, the Post Object field in the Spanish version of the “Main Post” will show the selected posts in the default language (English).
This difference in display between the backend and frontend is expected and doesn’t affect how your site works.