Не правильно работает поле association в carbon fields, что с этим можно сделать?

Ссылка скопирована
1 ответ

Регистрирую поле association

->add_tab('Другие наши курсы ', array(             Field::make( 'association', 'association2', 'Другие курсы' )                 ->set_types( array(                     array(                         'type'      => 'term',                         'taxonomy' => 'reviews_categories',                     )                 ) )         ))

->add_tab('Другие наши курсы ', array( Field::make( 'association', 'association2', 'Другие курсы' ) ->set_types( array( array( 'type' => 'term', 'taxonomy' => 'reviews_categories', ) ) ) ))

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

Не правильно работает поле association в carbon fields, что с этим можно сделать?

Убрав этот алерт я не вижу выбранных связей, хотя они есть

Не правильно работает поле association в carbon fields, что с этим можно сделать?

Далее еще интереснее, когда пытаюсь выбрать новую связь, то все пропадает, а в консоль сыпятся ошибки

Не правильно работает поле association в carbon fields, что с этим можно сделать?

Может кто сталкивался с таким, подскажите, как это победить? или может откатиться на какую-нибудь более раннюю версию (у меня последняя 3.6).

В интернете ничего вразумительного не нашел по этому вопросу, даже в профиле гитхаб разработчика. Такие проблемы возникают судя по всему уже давно, потому что на гитхабе разработчика много вопросов на подобную тему, только отличие в том, что подобное происходит, когда поле association внутри поля complex. Да и разработчики особо полезного ничего не отвечают на гитхабе пользователям.

Дополнительно:

Ответы:

Возможно виной какие то кеширующие плагины, те что сжимают код html/css/js или кешируют страницы и код

1. отключать кэш плагины (w3 total cache, wp-rocket etc) проверить все ли ок.
2. включить режим debug и смотреть что в логах и далее чинить все что найдено.
3. заменить carbon fields на ACF, Metabox или аналоги если проблему никак не решить.

  • Спасибо, за ответ!

    Самое интересное, что на сервере все работает, как надо, а на локальном сервере не работает. + какая-то непонятная ошибка начала на локалке появляться, поэтому попробую просто сделать переустановку.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ольга Сеть Ответ

У Carbon Fields association действительно чувствительное поле: оно зависит от REST/AJAX-запросов админки, корректной регистрации контейнера, совместимости версии Carbon Fields с WordPress/PHP и от того, где именно поле находится. Если данные сохраняются, но при повторном открытии выбранные связи не отображаются и в консоли ошибки, начинать нужно не с отката, а с диагностики JS/API.

  1. Откройте консоль браузера и Network на странице редактирования записи.
  2. Посмотрите, какой AJAX/REST-запрос падает и какой текст ошибки возвращает сервер.
  3. Проверьте PHP error log на момент открытия поля.
  4. Временно отключите плагины оптимизации админки, security-плагины и кастомный код, который ограничивает REST API.
  5. Проверьте на стандартной теме и минимальном наборе плагинов.

Для термов укажите тип явно и убедитесь, что таксономия зарегистрирована до регистрации Carbon Fields:

Field::make('association', 'association2', 'Другие курсы')
    ->set_types([
        [
            'type'     => 'term',
            'taxonomy' => 'reviews_categories',
        ],
    ]);

Field::make('association', 'association2', 'Другие курсы') ->set_types([ [ 'type' => 'term', 'taxonomy' => 'reviews_categories', ], ]);

Если проблема воспроизводится только на версии 3.6, временный откат до стабильной версии допустим, но фиксировать это нужно в composer/package lock или в списке плагинов, иначе обновление вернёт ошибку. Обходной вариант — заменить association на relationship-поле ACF или хранить выбранные ID термов в multiselect, если нужен только простой выбор связей.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно