WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

ПРОБЛЕМА с 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() работает штатно. Ума не приложу, что не так.

Подскажите пожалуйста, что я упустил?

Заметки к вопросу:
artikus 1 месяц назад

Попробуйте получить поля через get_post_meta

Вы поля создаете не по заветам ACF, он при создании полей еще уникальные ключи для них использует, может быть потому и не видно ничего

Myakish 1 месяц назад

Спасибо за совет, обязательно попробую.
Я пробовал и другой вариант создания записей - через set_field() вместо массива meta_input. К сожалению результат получил такой же sad .

0
Myakish
1 месяц назад 6
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация