WPML: Получение slug категории в зависимости от языка

Для создания мультиязычного сайта на WordPress существует замечательный плагин WPML. Он способен предоставлять записи, категории, элементы меню на разных языках (стоит отметить, что плагин не использует сервисы такие как Google translater, а перевод элементов вы должны сделать сами).

Ниже речь пойдет о том, как получить slug (ярлык) категории присущей выбранному языку.

И так:
Предположим, у нас есть такосномия genre и в ней категория (термин) с ярлыком (slug) "some_term". Задача стоит, получить одну запись с этой категории. Использовать мы будем функцкию get_posts().

Для начала напишем сниппет, который разместим в functions.php
function return_term_lang_slug($slug, $taxonomy) {
  $curent_slug =  get_term_by('slug', $slug, $taxonomy);
  if(function_exists('icl_object_id') && !is_wp_error($curent_slug) ) {
    $id = icl_object_id($curent_slug->term_id,$taxonomy,true);
  } else {
    return $slug;
  }
  if ($id && !is_wp_error($id)) {
  	 $lang_term = get_term_by('id', $id, $taxonomy);
  	 return $lang_term->slug;
  }
}

Давайте рассмотрим что он делает и что выводит.

return_term_lang_slug($slug, $taxonomy)
$slug - данная переменная содержит ярлык нужной нам рубрики (в нашем случае это "some_term")
$taxonomy - данная переменная содержит ярлык таксономии к которой относится наша рубрика (в нашем случае это "genre")

В итоге, чтоб получить нам запись из категории связанной с активным языком в sidebar.php (или в любом другом файле вашего шаблона, в зависимости от того, где хотите вывести вашу запись) формируем данные для get_posts()

$slug = 'some_term'; // Задаем изначальный ярлык категории языка "по умолчанию"
$taxonomy = 'genre'; // Задаем таксономию нашей категории
$langTermSlug = return_term_lang_slug($slug, $taxonomy);
$args = array( 
   'post_type' => 'post', //Тип записи к которому относится наша таксономия 
    $taxonomy => $langTermSlug, // Указываем, что хотим получить запись из указанной таксономии указанного термина
   'posts_per_page'=>1 // Количество записей
);
$langPost = get_posts($args); // Получаем запись и заносим объект в $langPost

Далее, вам остается разобрать массив полученный в $langPost

Разработка сайтов на WordPress Блог WordPress плагины и хаки WPML: Получение slug категории в зависимости от языка