ACF Загрузить изображение в репитере с внешнего интерфейса с пользовательской формой? - add_post_meta () - PullRequest
0 голосов
/ 30 марта 2020

Я хочу загрузить изображения в повторитель ACF. Этот ретранслятор означает галерею страницы. Суть в том, чтобы создать сообщение в пользовательском типе сообщения, используя метод add_post_meta () .

Здесь у меня есть форма:

<input type="file"  class="custom-file-input" id="customFile" multiple accept="image/x-png,image/gif,image/jpeg" name="gallery[]">

Метод формы POST и форма имеют атрибут enctype="multipart/form-data".

В файле принятия, где мне нужно обработать запрос и доход:

$estate_gallery = $_FILES['gallery']; //array of images, I have above in input name="gallery[]"

Ну, в ACF я создал Repeater изображений галереи, для создания полей (в моем случае подполей) я использовал этот пример .

$repeater_field = 'repeater'; //with my keys and names
$repeater_key = 'field_5443d4e2dd4e4';
$sub_field = 'sub_field';
$sub_field_key = 'field_5443d4e2dd4e5';

$count = count($values); // here in my case is $estate_gallery
if ($count) {
  // the db value stored in the db for a repeater is
  // the number if rows in the repeater
  add_post_meta($post_id, $repeater_field, $count, true);
  add_post_meta($post_id, '_'.$repeater_field, $repeater_key, true);
  for ($i=0; $i<$count; $i++) {
    // the actual field name in the DB is a concatenation of
    // the repeater field name, the index of the current row
    // and the sub field name, with underscores added
    $sub_field_name = $repeater_field.'_'.$i.'_'.$sub_field;
    add_post_meta($post_id, $sub_field_name, $values[$i], false);
    add_post_meta($post_id, '_'.$sub_field_name, $sub_field_key, false);
  }
}

И это работает очень хорошо, количество подполей в повторителе равно номеру изображения на входе.

Но я не вижу загруженных изображений ...

Я полагаю, изображения с входа должны быть загружены на носитель и связаны с полем повторителя? Как это сделать?

Спасибо. о /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...