Это лучший способ, который я нашел для получения сообщений на определенном языке с помощью WPML...
В моем случае мне нужно найти сообщение по его заголовку на определенном языке и вернуть идентификатор сообщения:
$lang='en';
$title='The title you are searching!';
function getWpIdByTitle($title, $lang){
global $sitepress;
// WPML Super power language switcher...
$sitepress->switch_lang( $lang );
$args = array(
'title' => $title,
'post_type' => 'your-post-type', // Default: post
'post_status' => 'publish',
'suppress_filters' => false,
'numberposts' => 1
);
$wp_query = new WP_Query( $args );
return $wp_query->post->ID;
}
Вы можете использовать $wp_query->post как результат выборки и выполнять эхо-заголовок, контент и т. д.
Таким образом, вам не нужно использовать
do_action( 'wpml_set_element_language_details', $set_language_args );
для подключения ваших языковых сообщений, ни
icl_object_id(1,'post',false,ICL_LANGUAGE_CODE);
чтобы получить идентификатор сообщения на определенном языке.
person
gtamborero
schedule
21.10.2018