#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’)
- Значение: идентификатор сообщения или идентификатор термина