No matter whether I use it from my page in French version or in English version, wp_query() returns my custom post types in all languages, not just in the current one. Get_posts() does the same thing too.
When I visit my page in French, I want them to return CPTs in the current language only. How to achieve that?
When using get_posts(), set suppress_filters to false:
http://codex.wordpress.org/Function_Reference/get_posts#Parameters
That’s the best way I found to fetch posts on a specific language using WPML…
In my case I need to find a post by it’s title on a specific language and return the ID of the post:
You may use the $wp_query->post as the result of the fetch and do the echo’s of title, content, etc.
This way you don’t need to use the
do_action( 'wpml_set_element_language_details', $set_language_args );
to connect your language posts, neither the
icl_object_id(1,'post',false,ICL_LANGUAGE_CODE);
to get the ID of a post on a specific languange.