$original_post_id = 123; // Replace with the original post ID
$language_code = 'fr'; // Replace with the language code of the translated post
$translated_post_id = apply_filters('wpml_object_id', $original_post_id, 'post', false, $language_code);
Функция
— это фильтр, предоставляемый плагином WPML, который принимает исходный идентификатор публикации, тип публикации (в данном случае «пост») и код языка в качестве параметров. Он возвращает идентификатор переведенного сообщения, если он доступен, или идентификатор исходного сообщения, если перевода не существует.
Поскольку компании расширяются по всему миру, многоязычные веб-сайты становятся необходимыми для охвата более широкой аудитории. WordPress с его популярным плагином WPML обеспечивает отличную поддержку для создания многоязычных веб-сайтов. Одним из распространенных требований на таких веб-сайтах является программное получение переведенного идентификатора сообщения. В этой статье мы рассмотрим различные методы достижения этой цели с помощью WPML.
Метод 1: использование фильтра wpml_object_id
Пример кода:
$original_post_id = 123; // Replace with the original post ID
$language_code = 'fr'; // Replace with the language code of the translated post
$translated_post_id = apply_filters('wpml_object_id', $original_post_id, 'post', false, $language_code);
Объяснение:
Этот метод использует фильтр wpml_object_id, предоставляемый WPML. В качестве параметров он принимает исходный идентификатор сообщения, тип сообщения (в данном случае «сообщение») и код языка. Фильтр возвращает идентификатор переведенного сообщения, если он доступен, или идентификатор исходного сообщения, если перевода не существует.
Метод 2: использование функции icl_object_id
Пример кода:
$original_post_id = 123; // Replace with the original post ID
$language_code = 'fr'; // Replace with the language code of the translated post
$translated_post_id = icl_object_id($original_post_id, 'post', false, $language_code);
Объяснение:
Подобно предыдущему методу, этот подход использует icl_object_id
Метод 3: использование функции wpml_get_content_trid
Пример кода:
$original_post_id = 123; // Replace with the original post ID
$trid = wpml_get_content_trid('post_' . $original_post_id);
$translations = wpml_get_element_translations('post', $trid);
$language_code = 'fr'; // Replace with the language code of the translated post
$translated_post_id = $translations[$language_code]->element_id;
Объяснение:
Этот метод предполагает использование фильтра wpml_get_content_trid, функции icl_object_idили комбинации функций wpml_get_content_trid. программно получить доступ к переведенному идентификатору сообщения на многоязычном веб-сайте WordPress. Эти методы полезны для разработчиков, работающих над многоязычными веб-сайтами, и могут улучшить функциональность и удобство использования таких сайтов.