Когда я использую get_field('repeater_name')
, он возвращает строку, содержащую число, которое является счетчиком ретранслятора, в то время как он должен возвращать массив подполей, ранее об этой проблеме неоднократно сообщалось, но ни одно из них не обеспечивало стабильного исправления. к этому единственный способ - отредактировать сообщение и нажать кнопку обновления, и он будет заново генерировать поля повторителя, но в моем случае у меня есть 19 тысяч сообщений, и редактировать каждое сообщение невозможно.
Также have_rows('repeater_name')
возвращает false, как и ожидалось, и данные реального поля (get_post_meta($post_id, "field_{$field_key}", true)
возвращает NULL
. Буду признателен за любую помощь или любой автоматический скрипт, который генерирует ключи поля повторителя и заполняет значения всех сообщений.
Об этой проблеме ранее сообщалось в здесь , здесь и здесь , и ни одна не была исправлена.
РЕДАКТИРОВАТЬ: Я обнаружил проблему, проблема в wp_postmeta
таблице, неправильные ключи поля хранятся:
wp_postmeta table
| meta_key | meta_value |
| ------------- |:-------------:|
| _repeater_name | field_XXXXXXX |
| _repeater_0_subfield | field_ABCDEFG |
| _repeater_0_subfield2 | field_HIJKLMN |
Те же ключи поля должно совпадать в wp_posts
т в состоянии, но это не так (возможно, из-за переноса данных или по любой другой причине):
| post_excerpt | post_name | post_type |
| ---------------| ------------- |-----------|
| repeater_name | field_YYYYYYY | acf-field |
| subfield | field_BBBBBBB | acf-field |
| subfield2 | field_CCCCCCC | acf-field |
Я думаю, если есть способ синхронизировать c ключи полей в базе данных, это решит проблему