WordPress — вручную связать перевод двух сообщений с помощью polylang

#php #wordpress #translation #multisite #polylang

#php #wordpress #перевод #мультисайт #polylang

Вопрос:

В настоящее время я разрабатываю плагин для мультипостинга на многосайтовом WordPress.

Я хотел, чтобы плагин работал с Polylang, он хорошо работает, когда дело доходит до настройки правильного языка, но я не могу найти способ подключиться к другим его переводам (когда я публикую сообщения из блога другим, в противном случае на том же сайте, это работает ).

Я искал в их документации и через их плагин, но не нашел ничего, что действительно могло бы мне помочь.

Есть ли у вас какие-либо идеи, как я могу вручную установить связь между переводами одного и того же сообщения?

Заранее спасибо ! 🙂

Ответ №1:

Я нашел решение для этого.

Вам просто нужно создать wp_insert_term, подобный этому, с другим описанием:

 wp_insert_term($group = uniqid('pll_'), 'post_translations', array('description' => serialize(['fr' => 453, 'en' => 455])));
  

А затем вы устанавливаете этот термин для своих соответствующих сообщений или пользовательских сообщений :

 wp_set_object_terms( $postId, yourTerm, 'post_translations');
  

И вот, пожалуйста, ваш пост правильно связан в вашем серверной части!

Ответ №2:

Это цель pll_save_post_translations (для переводов post relations) и pll_save_term_translations (для перевода терминов relation), которые определены в /wp-content/plugins/polylang/include/api.php .

Обе эти функции будут ожидать ассоциативного массива с :

  • Ключ: код языка ISO на 2 буквы (т.е. ‘en’)
  • Значение: идентификатор сообщения или идентификатор термина