Skip navigation

Это форум технической поддержки WPML – плагина для многоязычной WordPress.

Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.

Sun Mon Tue Wed Thu Fri Sat
- 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 -
- 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 -

Часовой пояс сторонника: Europe/Kyiv (GMT+02:00)

Помечено: 

Эта тема содержит 5 ответов, имеет 0 голоса.

Последнее обновление: Andrey 4 часа, 25 минут назад.

При содействии: Andrey.

Автор Записи
6 марта, 2025 на 7:32 пп #16785169

vitaliD-2

Background of the issue:
Изначально была создана английская версия сайта. Сейчас стоит вопрос разработки испанской версии. Установили WPML. В ходе его настройки и настройки ACF заметили предупреждения напротив каждого поля в группах полей.

Symptoms:
Напротив каждого поля в каждой из групп полей стоит восклицательный знак с подсказкой. Поля ACF на другой языковой версии отображаются пустыми, если установлено 'Don't translate'.

Questions:
Здравствуйте!
Изначально была создана английская версия сайта. Сейчас стоит вопрос разработки испанской версии. Установили WPML. В ходе его настройки и настройки ACF заметили, что напротив каждого поля в каждой из групп полей стоит восклицательный знак и следующая подсказка скрытая ссылка Не совсем понятен смысл предупреждения. Спрашиваем, так как попробовали перевести один из элементов и там поля ACF на др. языковой версии отображаются и туда можно прописать свой контент. Но да, на момент открытия элемента они были пустые. Выходит, что если везде установлено по умолчанию о чем говорилось в подсказке Don't translate - значит поля просто будут пустые, ничего с исходного языка скопировано не будет, но можно будет их самостоятельно заполнить?
Др. пример, когда в группе есть поле типа чекбокс для фильтра скрытая ссылка соответственно нужно, чтобы вэлью на др. языке оставалось прежним, чтобы фильтр корректно работал, но именно лейбл нужно перевести. Как в таком случае это правильно делается? Нужно выбирать одну из четырех упомянутых опций для поля или как-то пересоздаетсяпереводится для нового языка целиком эта группа полей?
Спасибо за пояснения!

6 марта, 2025 на 9:59 пп #16785497

Andrey
Supporter

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

Здравствуйте!

Вы заметили предупреждения в виде восклицательных знаков рядом с каждым полем в группах полей ACF после установки WPML. Эти предупреждения указывают на то, что для данных полей не установлены настройки перевода, и по умолчанию они помечены как «Не переводить» («Don't translate»). В результате, при создании перевода записи, значения этих полей не копируются из оригинала, и поля остаются пустыми, ожидая ручного заполнения.​
WPML

Чтобы обеспечить корректную работу и отображение пользовательских полей ACF на разных языках, необходимо настроить их параметры перевода. Плагин ACF Multilingual предоставляет четыре варианта настройки перевода для каждого пользовательского поля:​

Переводить: значения пользовательских полей доступны для перевода.​

Копировать: значения полей автоматически копируются из оригинала в перевод и синхронизируются при обновлении.​

Копировать раз: значения полей копируются из оригинала в перевод только один раз при его создании и не синхронизируются при последующих изменениях.​
WPML

Не переводить: значения полей не копируются и остаются уникальными для каждого языка.​

В вашем случае, если вы хотите, чтобы значения чекбоксов для фильтра сохранялись одинаковыми на всех языках для корректной работы фильтра, рекомендуется установить для этих полей опцию «Копировать». Это обеспечит одинаковые значения на всех языках, что важно для функциональности фильтрации. При этом, если необходимо перевести метки (лейблы) этих чекбоксов, их следует настроить как «Переводить», чтобы они отображались на соответствующем языке.​

Для настройки параметров перевода пользовательских полей ACF выполните следующие шаги:​

1. Перейдите в админ-панель WordPress и выберите «Пользовательские поля» > «Группы полей».​
2. Откройте редактирование нужной группы полей.​
WPML
3. Для каждого поля установите соответствующий параметр перевода в разделе «Настройки перевода» (Translation preferences).​
WPML
4. Сохраните изменения.​

Более подробную информацию о настройках перевода пользовательских полей для ACF и WPML вы можете найти в официальной документации: ​
https://wpml.org/ru/документация/связанные-проекты/advanced-custom-fields-acf-multilingual-переводи-все-поля-с-помощью-wpml/настройки-перевода-пользовательских/

Если у вас возникнут дополнительные вопросы или сложности, пожалуйста, обращайтесь за поддержкой.

7 марта, 2025 на 9:56 дп #16787249

vitaliD-2

Спасибо за подробный и оперативный ответ! Есть дополнительные вопросы, т.к. не хотелось бы потерять контент и нагородить огород.

Итак, сейчас язык по умолчанию в админке и в WPML английский. Делаем испанскую версию. Сразу не обратили внимание на наличие ещё русского флага в переключателе контента (наличие русской версии не планируется).

Попытались отредактировать для теста группу полей Index page + header/footer - установили для изображений значение "копировать" - сохранили - поля пропали из админки при редактировании страницы.

Стали разбираться и предположили, что есть чехарда с частью контента (наличие русского) и она появилась из-за того, что в процессе эксплуатации сайта кто-то переключал язык в админке и часть страниц и групп полей были созданы на русском, остальные на английском. До этого все нормально работало, т.к. была одна версия, но при подключении wpml это сыграло свою роль? Группа полей Index page + header/footer не отобразилась для главной, т.к. главная создана на en-версии только. Эта группа полей есть только в ru версии скрытая ссылка Подобных групп ещё 4 скрытая ссылка остальные на английском.

Создали для теста дубликат главной для ru-версии, поля на ней естественно, отобразились скрытая ссылка на английской главной - полей нет, но контент при этом отображается корректно.

Как лучше выйти из данной ситуации? Верно ли понимаем, что эти группы полей нужно как-то скопировать/сдублировать для английской версии? Если да, то только для английской, на испанскую они уже распространятся автоматически, т.к. английский сейчас язык по умолчанию или нужно ещё продублировать и для испанской? Включили эту опцию скрытая ссылка Находясь на ru попытались дважды продублировать группу на английский (дважды, т.к. по-видимому, какой-то сбой) скрытая ссылка - оба раза дублируется только 9 полей - скрытая ссылка, в исходной версии 51

Остальные досоздавать вручную или есть др. быстрый способ? Вариант ли, находясь в Tools на ru-версии, экспортировать json эти 5 групп полей скрытая ссылка, а затем, перейдя на en-версию, импортировать? Или это может породить доп. баги и конфликты?

Допустим, одним из способов, если это нужно, мы дублируем группы полей для en, выводим их в админку, редактор wordpress. Сохранится ли ранее внесенный контент? Нужно ли будет обязательно удалять ru-версии групп полей?

Спасибо за помощь!

7 марта, 2025 на 9:27 пп #16790066

Andrey
Supporter

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

Это действительно сложный случай, связанный с тем, что в разное время контент и группы полей создавались на разных языках.

1. Дублирование групп полей для английской версии
Ваше понимание верно – группы полей нужно перенести на английский язык. А раз английский – основной язык, они автоматически распространятся и на испанский.

2. Почему дублируется только 9 полей из 51?
Это указывает на возможный сбой при дублировании, либо на то, что у некоторых полей стоит неверная настройка перевода. Проверьте:

- Открываете WPML → Настройки → Перевод пользовательских полей.
- Убедитесь, что поля настроены на "Копировать" или "Копировать один раз", если их не нужно переводить.

Способы копирования групп полей. У Вас есть несколько вариантов, выбирайте тот, который удобнее:

Способ 1. Повторное дублирование через WPML (рекомендуется, если дублирование работало частично)
- Переключаетесь на русскую версию.
- Открываете нужную группу полей в ACF.
- Пробуете ещё раз дублировать на английский, убедившись, что WPML настроен правильно.
- Проверяете, отображаются ли поля на главной.

Способ 2. Экспорт/импорт JSON-файлов (быстрый, но потенциально может создать дубликаты)
- Переключаетесь на русский язык в админке.
- В ACF → Tools экспортируете нужные 5 групп полей в JSON.
- Переключаетесь на английский язык.
- Импортируете JSON в ACF → Tools.
- Проверяете, корректно ли поля теперь привязаны к английскому.

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

Что будет с контентом после переноса полей? Контент останется на месте. Поля ACF – это просто структура, а данные хранятся в базе данных. Но! Если удалить старые группы полей, убедитесь, что новые действительно работают, чтобы случайно не потерять настройки.

Нужно ли удалять русские версии групп полей? Да, если они больше не нужны. Если контент и функционал дублируются, лучше оставить только английскую версию.Но если удалять, сначала убедитесь, что английская версия полностью рабочая, иначе часть полей может пропасть.

Если подытожить:
1. Попробуйте ещё раз дублировать через WPML – возможно, сработает.
2. Если нет – используйте экспорт/импорт JSON (не забудьте удалить русские группы после проверки).
3. Контент сохранится, но перед удалением старых групп проверьте работу новых.
4. Испанская версия возьмёт поля из английской, если WPML настроен правильно.

Хочу отметь, что так как кейс не простой, нет простых шагов и какие-то из них могут быть не точными или не сработают, и Вам нужно пробовать, что лучше всего сработает для Вас. В целом, Вам нужно ориентироваться на документацию: https://wpml.org/ru/документация/связанные-проекты/advanced-custom-fields-acf-multilingual-переводи-все-поля-с-помощью-wpml/переводим-блоки-acf-с-помощью-wpml/. Я надеюсь, что это может.

Пожалуйста, не забудьте сделать резервную копию Вашей базы данных, прежде чем продолжить.

Хороших выходных!

12 марта, 2025 на 10:24 дп #16806274

vitaliD-2

А может быть можно решить проблему др. способом? Т.е. если мы исходим из того предположения, что группы полей ACF после установки Вашего плагина стали определяться некоторые как английские, некоторые как русские из-за того, что "язык в админке вордпресс переключался во время создания этих групп полей" в то время как плагин ещё на сайте не был установлен - на основании какого параметра из БД плагин после его установки делает такую разбивку по языкам? Можем ли мы деактивировать плагин, поменять в БД эту настройку, снова активировать или даже заново установить плагин, чтобы поля изначально определялись после активации плагина как английские.
Спасибо!

12 марта, 2025 на 9:58 пп #16809298

Andrey
Supporter

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

К сожалению, кроме предложенных выше вариантов, я не могу предложить дополнительных изменений непосредственно в базе данных.

Вы упомянули возможность "снова активировать или даже заново установить плагин". Если этот вариант Вам подходит, Вы можете попробовать полностью сбросить WPML и настроить его заново, однако я не могу гарантировать, что это решит возникшую проблему.

Шаги для сброса WPML:
1. Перейдите в WPML → Поддержка и нажмите на ссылку Устранение неполадок.
2. В разделе Сброс на странице устранения неполадок установите флажок Я собираюсь сбросить все данные перевода и языка, затем нажмите кнопку Сбросить и деактивировать WPML.

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

Подробная инструкция:
https://wpml.org/documentation/getting-started-guide/language-setup/deleting-languages-and-plugin-data-by-doing-a-wpml-reset-on-your-site/#step-3-do-the-wpml-reset

Не забудьте о копии сайта перед любыми действиями.