Добавить мета-запись, добавив 2 записи вместо 1 из Array () - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь собрать значения всех строк из поля повторителя для использования в запросе.Я знаю, что мне нужно собрать значения и объединить их в моем собственном meta_key, поскольку ACF сохраняет их таким образом, что это делает невозможным иначе.

В настоящее время я не могу получить его для сохранения post_meta.

Обновление

Я изменил код так, как мне кажется, в правильном направлении, однако теперь я добавляю 2 элемента в таблицу postmeta вместо 1 элемента со значениями, объединенными внутриэто.

Файл функций

add_filter('acf/save_post', 'update_display_pages', 20);
function update_display_pages($post_id) {
    if ( get_post_type($post_id) != 'popup' )
        return;

    if( have_rows('popup_pages', $post_id) ):
        $displayPages = array();

        while ( have_rows('popup_pages', $post_id) ) : the_row();
             if (get_sub_field('popup_pages_select')) {

                $pages = array();
                $pages[] = get_sub_field('popup_pages_select');

                print_r($pages);
                print_r($displayPages);

                foreach ($pages as $page) {
                    $displayPages = $pages;
                    $displayPages[] = $displayPages;
                }

                if ( get_post_meta( $post_id, 'popup_display_pages', true ) )
                    update_post_meta($post_id, 'popup_display_pages', $displayPages);
                else
                    add_post_meta( $post_id, 'popup_display_pages', $displayPages);
             }
      endwhile;
    endif;
}

Сохраняет как

Meta Key: popup_display_pages
Meta Value: a:2:{i:0;s:33:"https://www.yourdomain.co.uk/page";i:1;a:1:{i:0;s:33:"https://www.yourdomain.co.uk/page";}}

Meta Key: popup_display_pages
Meta Value: a:2:{i:0;s:34:"https://www.yourdomain.co.uk/pager";i:1;a:1:{i:0;s:34:"https://www.yourdomain.co.uk/pager";}}

Я хочу сохранить его в 1Мета-ключ и сохранить оба значения, как вы можете видеть, он просто дублирует первое значение, а затем создает другую запись и делает то же самое для другого значения.

...