Intereting Posts

Фиксированные значения для одинаковых почтовых переводов

Недавно я реализовал пользовательский тип сообщения в WordPress и добавил WPML, чтобы я мог перевести его название и контент.

Этот тип сообщения (город) также имеет некоторые пользовательские обмены (metabox.io), такие как:

  • Координаты
  • Адрес
  • isFeatured
  • и т.д…

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

Мой вопрос: какой был бы лучший способ решить эту проблему? Как я могу использовать один набор метаданных для всех переводов одного и того же сообщения? Таким образом, мне нужно только добавить его один раз для каждого города и, если нужно, отредактировать его в одном месте.

Благодаря,

Я столкнулся с такой же проблемой. Плохая новость, это не очень хорошо поддерживается WPML …

Чтобы быть более конкретным, это поддерживается очень странным образом: поддерживается синхронизация значений для отдельных пользовательских обменов, но только «один путь» (от исходного к переведенному, но не наоборот).

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

Эта проблема лучше описана на форуме поддержки WPML: https://wpml.org/forums/topic/post_meta-copy-only-copies-one-way-it-should-be-named-sync-and-just-sync/

К сожалению, поддержка ответа на этот вопрос скорее «негативна». Они не обещают исправить это и утверждают, что это регулярное поведение WPML, а не ошибка.

Также стоит упомянуть, что вся эта «односторонняя» синхронизация доступна только в том случае, если у вас многоязычная версия CMS (за 79 долларов США).