Почему WP Multilang не функционирует на странице настроек (если поля были добавлены в wpm-config)?

У меня есть сайт на WordPress с установленным WP Multilang. На странице настроек (options page) у меня есть произвольные поля (ACF), которые уже добавлены в wpm-config.json, как и сама страница настроек. Переключатель языков отображается на странице, но при сохранении значений в полях для английского и русского языков они взаимно затирают друг друга. Обычно это происходит, если поля не включены в wpm-config, но в моём случае так не должно быть. 

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

Я изучила информацию на Google и DeepSeek, но не смогла найти решение. Возможно, у кого-то есть идеи, как это можно исправить?
  • 28 января 2025 г. 13:44
Ответы на вопрос 1
Проблема, которую вы описали, связана с тем, как WP Multilang обрабатывает произвольные поля (ACF) на страницах настроек. Если вы уже добавили произвольные поля в `wpm-config.json` и переключатель языков отображается, есть несколько моментов, которые стоит проверить:

1. **Структура wpm-config.json**: Убедитесь, что настройка для вашей страницы правильно указана в `wpm-config.json`. Проверьте, что все необходимые поля указаны и синтаксис не нарушен. Пример настройки должен выглядеть так:
    ```json
    {
        "options": {
            "my_settings_page": {
                "fields": [
                    {
                        "name": "my_custom_field",
                        "label": "My Custom Field"
                    }
                ]
            }
        }
    }
    ```

2. **Проверка ключей произвольных полей**: Убедитесь, что ключи произвольных полей (поле ACF) уникальны для каждого языка. Если они совпадают, WP Multilang может считать их одним и тем же полем и, следовательно, затирать значения.

3. **Использование фильтров ACF**: Попробуйте использовать фильтры ACF, чтобы убедиться, что данные сохраняются на основе выбранного языка. Это может потребовать добавления собственного кода, чтобы изменить поведение сохранения данных.

4. **Кэширование**: Если у вас включено кэширование, попробуйте очистить кэш. Иногда изменения могут не отражаться из-за кэшированных данных.

5. **Ошибка JavaScript**: Откройте инструменты разработчика в вашем браузере и проверьте наличие ошибок JavaScript на странице настроек. Иногда ошибки в скриптах могут влиять на работу плагина.

6. **Совместимость с другими плагинами**: Убедитесь, что другие плагины, которые у вас установлены, не конфликтуют с WP Multilang. Отключите временно другие плагины, чтобы проверить, сохраняется ли проблема.

7. **Обновление плагинов и темы**: Убедитесь, что ваш WP Multilang, ACF и используемая тема обновлены до последних версий. Иногда баги исправляются в новых обновлениях.

8. **Обращение к поддержке WP Multilang**: Если ни одно из вышеперечисленных решений не помогает, рекомендую обратиться к поддержке WP Multilang или на форум поддержки плагина. Возможно, у них есть информация о текущих проблемах или известных ошибках.

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