При работе с многоязычными веб-сайтами с использованием многоязычного плагина WordPress (WPML) получение исходного идентификатора публикации может быть полезно для различных целей, таких как доступ к определенным данным публикации или выполнение пользовательских действий. В этой статье мы рассмотрим несколько методов получения исходного идентификатора публикации в WPML, а также приведем примеры кода.
Метод 1: использование функции icl_object_id
$original_post_id = icl_object_id($post_id, 'post', true);
icl_object_idуказывает, что мы хотим получить исходный идентификатор сообщения для объекта сообщения.
Метод 2: использование фильтра icl_object_id
function custom_icl_object_id($original_id, $type, $translated_id, $do_not_translate) {
if ($type === 'post') {
return $original_id;
}
return $translated_id;
}
add_filter('wpml_object_id', 'custom_icl_object_id', 10, 4);
Используя фильтр wpml_object_id, вы можете изменить поведение функции icl_object_id. В приведенном выше примере мы проверяем, равен ли параметр $type'post'.
Метод 3. Использование REST API WPML
$translated_post_id = 123; // Example translated post ID
$response = wp_remote_get('https://example.com/wp-json/wpml/v1/posts/' . $translated_post_id);
if (!is_wp_error($response)) {
$data = json_decode(wp_remote_retrieve_body($response), true);
$original_post_id = $data['original_post_id'];
}
Метод 4: использование расширенного редактора перевода WPML (ATE)
Расширенный редактор перевода WPML предоставляет удобный интерфейс для перевода контента. При использовании ATE вы можете получить доступ к исходному идентификатору сообщения непосредственно в интерфейсе ATE, что делает его удобным для переводчиков и администраторов веб-сайта.
Получение исходного идентификатора публикации в WPML необходимо в различных сценариях работы с многоязычными веб-сайтами. В этой статье мы рассмотрели четыре различных метода достижения этой цели, в том числе использование функции icl_object_id, ее изменение с помощью фильтра icl_object_id, использование REST API WPML и использование WPML. Расширенный редактор перевода. Внедрив эти методы, вы сможете расширить возможности своего веб-сайта WordPress и улучшить рабочий процесс локализации.