ПРОБЛЕМА с ACF и получением значений метаполей
Здравствуйте коллеги,
столкнулся с неприятностью:
создаю записи кастомного типа с доп.полями ACF:
while(($data_string = fgets($fp))){ // читаем строку файла в цикле $data_string = iconv( "cp1251", "UTF-8", $data_string ); $data_string = str_replace(array("\r\n", "\r", "\n"), ' ', $data_string); $data = explode( $dv, $data_string, ); // ------------------------------------------------------------------------------------------------------------ Запись данных в новую запись $post_id = wp_insert_post( wp_slash( array( 'post_status' => 'draft', //'draft' | 'publish' | 'pending'| 'future' | 'private' Статус создаваемой записи. 'post_type' => 'battery', //'post' | 'page' | 'link' | 'nav_menu_item' | custom post type, Тип записи. 'post_title' => $data[4], // Заголовок (название) записи. 'post_name' => strtolower(str_replace(" ", "-", $data[4])),// Альтернативное название записи (slug) будет использовано в УРЛе. 'post_author' => $user_ID, 'ping_status' => get_option( 'default_ping_status' ), 'post_parent' => 0, 'menu_order' => 0, 'to_ping' => '', 'pinged' => '', 'post_password' => '', 'post_excerpt' => '', 'meta_input' => array( // "id" => //"код страницы", // "href" => //"Ссылка на страницу", "b_type" => $data[2], //"Наименование раздела (типа)", "b_brend" => $data[3], //"Производитель (бренд)", "b_name" => $data[4], //"Наименование товара", "b_description" => $data[5], //"Описание товара", "b_capacity" => $data[6], //"Номинальная ёмкость", "b_voltage" => $data[7], //"Номинальное напряжение", "b_cc_current" => $data[8], //"Ток холодной прокрутки", "b_polarity" => $data[9], //"Полярность", "b_garranty" => $data[10], //"Срок гарантии", "b_equivalent1" => $data[11], //"Эквивалент1", "b_equivalent2" => $data[12], //"Эквивалент2", "b_equivalent3" => $data[13], //"Эквивалент3", "b_weight" => $data[14], //"Масса", "b_length" => $data[15], //"Длина", "b_width" => $data[16], //"Ширина", "b_height" => $data[17], //"Высота", "b_src" => $data[18], //"Ссылка на фото аккумулятора", "b_slider" => $data[19], //"Имя слайдера", "b_src_graph1" => $data[20] //"Ссылка на картинку графика 1", "b_src_graph2" => $data[21] //"Ссылка на картинку графика 2", "b_src_graph3" => $data[22] //"Ссылка на картинку графика 3" // "b_recharge_cycles" => //"Циклы перезарядки", ) ) ) );
Записи успешно создаются, в админке все доп.поля, созданные с помощью админки ACF, заполнены правильно. НО! get_fields( $post_id ) не видит структуру полей во всех записях (их 178) кроме одной. Функция acf_get_meta( $post_id ) тоже не даёт ничего для всех записей кроме одно. Как будто и нет вовсе ACF полей. При этом функция get_field() работает штатно. Ума не приложу, что не так.
Подскажите пожалуйста, что я упустил?
Попробуйте получить поля через get_post_meta
Вы поля создаете не по заветам ACF, он при создании полей еще уникальные ключи для них использует, может быть потому и не видно ничего
Спасибо за совет, обязательно попробую.
Я пробовал и другой вариант создания записей - через set_field() вместо массива meta_input. К сожалению результат получил такой же .
Может вам надо юзать the_field()?
В смысле the_field()? Где и для чего?