Skip navigation

Эта тема решена. Вот описание проблемы и ее решения.

Проблема:
Клиент пытается перевести поле ACF и сталкивается с тем, что перевод не сохраняется в редакторе переводов WPML и не отображается на сайте, показывая вместо этого исходный язык.
Решение:
Мы рекомендуем использовать функцию

get_field_object()

вместо

get_field()

, чтобы получить не только значение, но и метку поля. Пример использования:

$field = get_field_object('your_field_name');
if ($field) {
    echo '<strong>' . $field['label'] . ':</strong> ' . $field['value'];
}

Также важно в настройках ACF-поля установить опцию возвращаемого значения на “Label” для корректного отображения. По вопросу сохранения перевода: перевод действительно сохраняется и его можно редактировать через WPML → Перевод строк.

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

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

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

Помечено: 

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

Последнее обновление: dmitriyZ-2 11 часов, 55 минут назад.

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

Автор Записи
11 апреля, 2025 at 4:18 пп #16923703

dmitriyZ-2

Предыстория вопроса:
Я пытаюсь перевести поле ACF на странице: скрытая ссылка. Использую следующий код: <code>$sostav = get_field('состав'); <div id="sostav" class="product-features__content"> <?php foreach($sostav as $key => $value) { $ret = "$value"; if (next($sostav)==true) { echo $ret .= ", "; } else { echo $ret; } } ?> </div></code>

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

Вопросы:
Почему перевод не сохраняется в редакторе переводов?
Как сделать так, чтобы перевод отображался вместо исходного языка?

12 апреля, 2025 at 8:40 дп #16925061

Andrey
Сторонник WPML с 06/2013

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

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

Спасибо за обращение в службу поддержки WPML.

Если вы временно закомментируете вывод — сохраняется ли перевод в таком случае?

Также рекомендуем обновить версии MySQL и PHP на вашем сервере.
Пожалуйста, протестируйте ситуацию, оставив активными только плагины WPML и WooCommerce — это поможет исключить влияние сторонних расширений.

Обратите внимание, что для корректной работы WPML важно использовать последнюю версию плагина WooCommerce. Убедитесь, что он обновлен.

12 апреля, 2025 at 10:59 дп #16925172

dmitriyZ-2

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

12 апреля, 2025 at 5:59 пп #16925584

dmitriyZ-2

Плагин WPML работает, Woocommerce тоже.
Я использую плагин Advanced custom fields для товаров, а чтобы его перевести использую Advanced Custom Fields Multilingual
Выбираю Same fields across the languages.
Главный язык сайта сначала был русский, потом я изменил его на латышский.

Перевод групп полей, которые выводятся на странице товара работает неккоректно.
Ввожу переводы - они сохраняются, но ни в админке ни на странице товара текст не меняется, остаётся только на одном языке

14 апреля, 2025 at 8:40 дп #16927815

dmitriyZ-2

Ау, помогите

14 апреля, 2025 at 9:01 дп #16927880

Andrey
Сторонник WPML с 06/2013

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

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

Мне нужно запросить временный доступ (WP-администратора и FTP) на Ваш сайт - предпочтительно к тестовому сайту, где проблема была воспроизведена, если это возможно - для того, чтобы лучше помочь. Вы найдете необходимые поля ниже поля для комментариев, когда Вы войдете, чтобы оставить свой следующий ответ. Информацию, которую Вы ведете является частной, что означает только Вы и я могу видеть и иметь доступ к ней.

14 апреля, 2025 at 9:51 дп #16928129

dmitriyZ-2

Проблема с группой полей Product fields

14 апреля, 2025 at 11:27 дп #16928866

dmitriyZ-2

Всё нормально, подключились?

14 апреля, 2025 at 2:24 пп #16930052

Andrey
Сторонник WPML с 06/2013

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

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

Спасибо, доступы работают. Я проверю и дам Вам знать, как узнаю больше.

14 апреля, 2025 at 7:00 пп #16931045

dmitriyZ-2

Ну как, есть подвижки?

14 апреля, 2025 at 9:07 пп #16931231

Andrey
Сторонник WPML с 06/2013

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

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

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

Если проблема всё ещё возникает, мне потребуется создать копию Вашего сайта для более детального анализа. Для этого я могу временно установить один из плагинов — Duplicator или All-in-One WP Migration. Это позволит мне создать полную копию Вашего сайта и его содержимого.

15 апреля, 2025 at 7:25 дп #16931989

dmitriyZ-2

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

15 апреля, 2025 at 10:12 дп #16933146

Andrey
Сторонник WPML с 06/2013

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

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

Я сделаю копию сайта и проверю это дальше.

15 апреля, 2025 at 10:44 дп #16933403

dmitriyZ-2

Получилось?

15 апреля, 2025 at 3:24 пп #16935068

Andrey
Сторонник WPML с 06/2013

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

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

Спасибо за ожидание.

Да, теперь я понимаю, в чём была проблема. После серии тестов мне удалось выяснить, почему переводы не отображаются.

Вы используете функцию get_field(), которая возвращает только значение поля, но не метку (label). Чтобы получить и метку, и значение, нужно использовать функцию get_field_object().

Пример:

$field = get_field_object('your_field_name');
if ($field) {
    echo '<strong>' . $field['label'] . ':</strong> ' . $field['value'];
}

В Вашем случае, я локально заменил строку
$sostav = get_field('sostav');
на
$sostav = get_field_object('sostav');
и смог получить доступ к $sostav['value']. Я также показал это на скриншоте.

Кроме того, в настройках ACF-поля я изменил опцию возвращаемого значения на “Label” (этикетка) — это важно для корректного отображения.

Что касается вопроса “почему перевод не сохраняется в редакторе переводов?” — на самом деле, перевод сохраняется. Его можно просмотреть и изменить через WPML → Перевод строк.
Проблема возникает потому, что пакет строк был изначально создан на русском языке, а затем Вы сменили язык. Это вызывает некорректное отображение. Если вернуть язык по умолчанию, отображение снова будет корректным. Предполагаю, что в будущем это будет исправлено.

Хочу отметить, что отладка пользовательского кода выходит за рамки нашей технической поддержки WPML. Тем не менее, надеюсь, эта информация поможет Вам продвинуться в Вашем проекте.

Screenshot 2025-04-15 at 18.03.04.png
Редактирование-группы-полей-“Product-fields”-‹-Fruit-Flowers-—-WordPress.png
Screenshot-2025-04-15-at-18-02-34.png
Screenshot-2025-04-15-at-17-54-03.png