Я пытаюсь заполнить поле галереи ACF, используя хук load_value. Слайды изображений должны быть загружены из данных, которые хранятся в виде массивов, взятых из другого плагина (королевский слайдер).
Пример одного массива слайдеров:
[{"title":"Argentina-Holiday-Tours-Alvear-Palace-Interior-Suite-Executive-Governor-Suite","image":{"attachment_id":"1653"}},{"title":"Argentina-Holiday-Tours-Alvear-Palace-Interior-Suite","image":{"attachment_id":"1652"}},{"title":"Argentina-Holiday-Tours-Alvear-Palace-Interior-Room","image":{"attachment_id":"1651"}},{"title":"Argentina-Holiday-Tours-Alvear-Palace-Interior-Restaurant","image":{"attachment_id":"1650"}},{"title":"Argentina-Holiday-Tours-Alvear-Palace-Interior-Lounge","image":{"attachment_id":"1649"}},{"title":"Argentina-Holiday-Tours-Alvear-Palace-Interior-Buffet","image":{"attachment_id":"1648"}}]
У каждого королевского слайдера есть свой собственный идентификатор, и каждый идентификатор уже привязан к сообщениям, используя поле выбора ACF. У меня проблема с переносом ассоциативного массива в галерею ACF. Это то, что я имею до сих пор:
add_filter('acf/load_value/key=field_5e2058d65e519', 'build_gallery_from_rs', 10, 3);
function build_gallery_from_rs($value, $post_id, $field) {
if (!empty($value)) {
// already has a value
return;
}
// does not have a value, build value from slider attachments
global $wpdb;
$table = $wpdb->prefix . 'new_royalsliders';
$id = get_field('media_gallery_slider');
$slider_data = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $table WHERE id=%d", $id), ARRAY_A );
// How to build image array?
$media = $slider_data[0];
$value = array();
if ($media) {
foreach ($media as $image) {
$value[] = $image->ID;
}
}
return $value;
}
Любая помощь будет отличной