Thread Starter
carst
(@carst)
Also, from the uploader I will only see media in the same language as the post I’m looking at.
No problem here BTW. Just stating the obvious.
Plugin Author
Chouby
(@chouby)
Polylang does not automatically tranlate attachments when you create a new post translation. But if you create a translation for a media attached to a certain post, the translated media is attached to the post translation.
You can’t expect your code to work. When you specify the ‘post_parent’ argument, you retrieve only attachments of post_id which are in ‘post_id’ language. So either the lang parameter is useless (if you query the same language with ‘post_parent’ and ‘lang’) or the query will return an empty array (if both languages are different).
Thread Starter
carst
(@carst)
Thanks for your answer. I was trying to work around the fact that Polylang does not automatically translate attachments, by loading the attachments from an original post. But I gather from your answer this is not possible?
I already have posts in English, and need to translate these in Dutch. For now I would just like to get the images attached to the English post, when showing the Dutch post. I have been doing this in WPML and I expected Polylang to behave the same.
Is there some kind of filter (pre_get_posts for instance) which Polylang uses to automatically load posts in the current language? Can I disable this?
I tried setting the PLL_AUTO_TRANSLATE option to false, but this has no effect.
On the other hand, if I turn of the option for translating media in the settings, it does work. This is not ideal for me – in the future I might want to be able to translate media captions in some cases, – but it could be a solution.
Going back to WPML would be the other option, although I prefer the minimalism and simplicity of Polylang.
Plugin Author
Chouby
(@chouby)
I believe that this should get the attachments of the translated parent:
$args = array(
'post_type' => 'attachment',
'post_parent' => pll_get_post($post_id, 'en')
);
$attachments = get_posts($args);
You have to set PLL_AUTO_TRANSLATE to false as otherwise Polylang will come set the post_parent to the current language.