中继器上的get_sub_field返回空键/值

时间:2018-07-05 19:46:39

标签: wordpress advanced-custom-fields

编辑:使用输出数组的代码进行了更新

应该注意,我还有其他可以正常工作的字段,问题仅在于转发器的sub_fields。

// Needs to be updated to be more dynamic i know
function get_flexible_content_sections($name, $option = "") {
    // check if the flexible content field has rows of data
    if ( have_rows( $name, $option ) ):

        // loop through the rows of data
        while ( have_rows( $name, $option ) ) : the_row(); ?>

            <section class="section <?= get_sub_field( "class" ) ?>">
                <div class="section-content clear">

                    <?php while ( have_rows( "section" ) ) : the_row();
                        if ( get_row_layout() == 'one_width_cols' ) : ?>

                            <div class="full-width-col cols-12">
                                <?php while ( have_rows( "module_1" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>

                        <?php elseif ( get_row_layout() == 'two_width_cols' ) : ?>

                            <div class="half-width-col col-1 cols-6">
                                <?php while ( have_rows( "module_1" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="half-width-col col-2 cols-6 last">
                                <?php while ( have_rows( "module_2" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>

                        <?php elseif ( get_row_layout() == 'three_width_cols' ) : ?>

                            <div class="three-width-col col-1 cols-4">
                                <?php while ( have_rows( "module_1" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="three-width-col col-2 cols-4">
                                <?php while ( have_rows( "module_2" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="three-width-col col-3 cols-4 last">
                                <?php while ( have_rows( "module_3" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>

                        <?php elseif ( get_row_layout() == 'four_width_cols' ) : ?>

                            <div class="four-width-col col-1 cols-3">
                                <?php while ( have_rows( "module_1" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="four-width-col col-2 cols-3">
                                <?php while ( have_rows( "module_2" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="four-width-col col-3 cols-3">
                                <?php while ( have_rows( "module_3" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="four-width-col col-4 cols-3 last">
                                <?php while ( have_rows( "module_4" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>

                        <?php elseif ( get_row_layout() == 'five_width_cols' ) : ?>

                            <div class="five-width-col col-1 cols-2">
                                <?php while ( have_rows( "module_1" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="five-width-col  col-2 cols-2">
                                <?php while ( have_rows( "module_2" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="five-width-col col-3 cols-2">
                                <?php while ( have_rows( "module_3" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="five-width-col col-4 cols-2">
                                <?php while ( have_rows( "module_4" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>
                            <div class="five-width-col col-5 cols-2 last">
                                <?php while ( have_rows( "module_5" ) ) : the_row();
                                    get_layout_modules( get_row_layout() );
                                endwhile; ?>
                            </div>

                        <?php endif;
                    endwhile; ?>

                </div> <!--end section-content-->
            </section>
        <?php endwhile;
    else :
        // no layouts found
    endif;
}

function layout_module_slider() {
    ob_start();

    ?><div class="layout-module-slider <?= get_sub_field('class'); ?>">
        <?php
        $files = get_sub_field('img_slider');
        // pre is a function which wraps a value with print_r
        pre($files); // <-- prints the "empty" array
        if(count($files) > 0 ) {
            echo slick_slider_func($files);
        } else {
            echo "No images available";
        }
        ?>
    </div><?php

    return ob_get_clean();
}

原始:

我在灵活的内容层中有一个嵌套的转发器字段。目的是添加输出到滑块的图像。

图像ID存储在数据库中,但是当我尝试使用get_sub_field输出它们时,这就是我得到的:

get_sub_field output

我已经以编程方式构建了字段组,该字段组在后端工作,如下所示。相当于上述输出的后端:

Backend slider image with text

整个ACF设置/程序:

if ( function_exists( 'acf_add_local_field_group' ) ):

    add_action("init", "tryangle_generate_sections_fields");
    function tryangle_generate_sections_fields() {
        $indhold_gd = array(
            'key' => 'group_indhold',
            'title' => 'Indhold',
            'fields' => array (),
            'location' => array (
                array (
                    array (
                        'param' => 'post_type',
                        'operator' => '==',
                        'value' => 'page',
                    ),
                ),
            ),
            'position' => 'acf_after_title',
            'menu_order' => 0,
        );
        generate_fields( "indhold224466", $indhold_gd );
    }

endif;

function generate_fields($uniqid, $group_data)
{
    if(empty($uniqid) || empty($group_data)) return;

    // Sets a unique affix on all keys
    $uiq = $uniqid;
    // Sets the group_data with locations etc.
    $group_data['key'] = $group_data['key'] . '_' . $uiq;

    // Available modules
    $modules = array(
        array(
            'key'        => '5b2cefcfdea9da_'.$uiq,
            'name'       => 'text',
            'label'      => 'Text',
            'display'    => 'block',
            'sub_fields' => array(
                array(
                    'key'               => 'field_5b2d13ddfb10ba_'.$uiq,
                    'label'             => 'Text',
                    'name'              => 'text',
                    'type'              => 'wysiwyg',
                    'instructions'      => '',
                    'required'          => 0,
                    'conditional_logic' => 0,
                    'wrapper'           => array(
                        'width' => '',
                        'class' => '',
                        'id'    => '',
                    ),
                    'default_value'     => '',
                    'tabs'              => 'all',
                    'toolbar'           => 'full',
                    'media_upload'      => 1,
                    'delay'             => 0,
                ),
            ),
            'min'        => '',
            'max'        => '',
        ),
        array (
            'key' => '5b3e2a167d2ee_'.$uiq,
            'name' => 'image_slider',
            'label' => 'Slider',
            'display' => 'block',
            'sub_fields' => array (
                array (
                    'key' => 'field_5b3e2a3047a45_'.$uiq,
                    'label' => 'Slider',
                    'name' => 'img_slider',
                    'type' => 'repeater',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array (
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'collapsed' => '',
                    'min' => 0,
                    'max' => 0,
                    'layout' => 'table',
                    'button_label' => 'Tilføj billede',
                    'sub_fields' => array (
                        array (
                            'key' => 'field_5b3e2a3b47a46_'.$uiq,
                            'label' => 'Billede',
                            'name' => 'img',
                            'type' => 'image',
                            'instructions' => '',
                            'required' => 0,
                            'conditional_logic' => 0,
                            'wrapper' => array (
                                'width' => '20',
                                'class' => '',
                                'id' => '',
                            ),
                            'return_format' => 'array',
                            'preview_size' => 'thumbnail',
                            'library' => 'all',
                            'min_width' => '',
                            'min_height' => '',
                            'min_size' => '',
                            'max_width' => '',
                            'max_height' => '',
                            'max_size' => '',
                            'mime_types' => '',
                        ),
                        array (
                            'key' => 'field_5b3e2a5647a47_'.$uiq,
                            'label' => 'Billedetekst',
                            'name' => 'img_text',
                            'type' => 'wysiwyg',
                            'instructions' => '',
                            'required' => 0,
                            'conditional_logic' => 0,
                            'wrapper' => array (
                                'width' => '',
                                'class' => '',
                                'id' => '',
                            ),
                            'default_value' => '',
                            'tabs' => 'all',
                            'toolbar' => 'full',
                            'media_upload' => 1,
                            'delay' => 0,
                        ),
                    ),
                ),
            ),
            'min' => '',
            'max' => '',
        ),
        array(
            'key'        => '5b2cf0bbbf1c9a_'.$uiq,
            'name'       => 'posts_slider',
            'label'      => 'Indlægsslider',
            'display'    => 'block',
            'sub_fields' => array(
                array(
                    'key'               => 'field_5b2d13ddfb110a_'.$uiq,
                    'label'             => 'Indlægskategori',
                    'name'              => 'post_category',
                    'type'              => 'taxonomy',
                    'instructions'      => '',
                    'required'          => 0,
                    'conditional_logic' => 0,
                    'wrapper'           => array(
                        'width' => '',
                        'class' => '',
                        'id'    => '',
                    ),
                    'taxonomy'          => 'category',
                    'field_type'        => 'select',
                    'allow_null'        => 0,
                    'add_term'          => 0,
                    'save_terms'        => 0,
                    'load_terms'        => 0,
                    'return_format'     => 'object',
                    'multiple'          => 0,
                ),
                array(
                    'key'               => 'field_5b2d13ddfb111a_'.$uiq,
                    'label'             => 'Udseende',
                    'name'              => 'style',
                    'type'              => 'select',
                    'instructions'      => '',
                    'required'          => 0,
                    'conditional_logic' => 0,
                    'wrapper'           => array(
                        'width' => '',
                        'class' => '',
                        'id'    => '',
                    ),
                    'choices'           => array(
                        'Slider' => 'Slider',
                        'Grid'   => 'Grid',
                    ),
                    'default_value'     => array(),
                    'allow_null'        => 0,
                    'multiple'          => 0,
                    'ui'                => 0,
                    'ajax'              => 0,
                    'return_format'     => 'value',
                    'placeholder'       => '',
                ),
            ),
            'min'        => '',
            'max'        => '',
        ),
    );
    // Section columns
    $columns = array(
        array(
            'key'        => 'field_one_width_cols_'.$uiq,
            'name'       => 'one_width_cols',
            'label'      => 'En kolonne',
            'display'    => 'block',
            'sub_fields' => array(
            ),
            'min'        => '',
            'max'        => '',
            'cols'       => 1,
        ),
        array(
            'key'        => 'field_two_width_cols_'.$uiq,
            'name'       => 'two_width_cols',
            'label'      => 'To kolonner',
            'display'    => 'block',
            'sub_fields' => array(),
            'min'        => '',
            'max'        => '',
            'cols'       => 2,
        ),
        array(
            'key'        => 'field_three_width_cols_'.$uiq,
            'name'       => 'three_width_cols',
            'label'      => 'Tre kolonner',
            'display'    => 'block',
            'sub_fields' => array(),
            'min'        => '',
            'max'        => '',
            'cols'       => 3,
        ),
        array(
            'key'        => 'field_four_width_cols_'.$uiq,
            'name'       => 'four_width_cols',
            'label'      => 'Fire kolonner',
            'display'    => 'block',
            'sub_fields' => array(),
            'min'        => '',
            'max'        => '',
            'cols'       => 4,
        ),
        array(
            'key'        => 'field_five_width_cols_'.$uiq,
            'name'       => 'five_width_cols',
            'label'      => 'Fem kolonner',
            'display'    => 'block',
            'sub_fields' => array(),
            'min'        => '',
            'max'        => '',
            'cols'       => 5,
        )
    );

    /**
     * Add columns to sections
     */
    $loops = 1;
    foreach ($columns as $key => $col)
    {
        // loop for the amount of columns available (5 columns)
        for ($i = 1; $i <= $col['cols']; $i++) {
            $width = 100 / $loops;
            $columns[$key]['sub_fields'][] = array(
                'key'               => 'field_module_'.$i.'_'.$uiq,
                'label'             => 'Modul',
                'name'              => 'module_'.$i,
                'type'              => 'flexible_content',
                'instructions'      => '',
                'required'          => 0,
                'conditional_logic' => 0,
                'wrapper'           => array(
                    'width' => $width,
                    'class' => '',
                    'id'    => '',
                ),
                'min'               => '',
                'max'               => '',
                'button_label'      => 'Tilføj modul',
                'layouts'           => $modules,
            );
        }

        $loops++;
    }

    // Add field group "Indhold"
    acf_add_local_field_group($group_data);

    // Add sections to the "Indhold" field group
    acf_add_local_field(array(
        'parent'        => 'group_indhold_'.$uiq,
        'key'           => 'field_sections_'.$uiq,
        'label'         => 'Sektioner',
        'name'          => 'sections',
        'type'          => 'flexible_content',
        'button_label'  => 'Tilføj sektion',
        'layouts' => array(
            array(
                'key'        => 'layout_section_'.$uiq,
                'name'       => 'section',
                'label'      => 'Sektion',
                'display'    => 'block',
                'sub_fields' => array(
                    array(
                        'key'               => 'field_section_'.$uiq,
                        'label'             => 'Sektion',
                        'name'              => 'section',
                        'type'              => 'flexible_content',
                        'instructions'      => '',
                        'required'          => 0,
                        'conditional_logic' => 0,
                        'wrapper'           => array(
                            'width' => '',
                            'class' => '',
                            'id'    => '',
                        ),
                        'min'               => '',
                        'max'               => '',
                        'button_label'      => 'Tilføj kolonner',
                        'layouts'           => $columns,
                    ),
                    array(
                        'key'               => 'field_section_class_'.$uiq,
                        'label'             => 'Sektion class',
                        'name'              => 'class',
                        'type'              => 'text',
                        'instructions'      => '',
                        'required'          => 0,
                        'conditional_logic' => 0,
                        'wrapper'           => array(
                            'width' => '',
                            'class' => '',
                            'id'    => '',
                        ),
                        'default_value'     => '',
                        'placeholder'       => '',
                        'prepend'           => '',
                        'append'            => '',
                        'maxlength'         => '',
                    ),
                ),
            ),
        ),
    ));
}

非常感谢您的帮助!我整天都被这个困扰。 谢谢!

2 个答案:

答案 0 :(得分:1)

好吧,我不确定为什么它为空:

pre($files); // <-- prints the "empty" array

但是,您可以替换为:

$files = get_sub_field('img_slider');

..使用以下命令:(手动为$files构建数据)

$files = array();
if ( have_rows( 'img_slider' ) ) {
    // Loop through the repeater's fields and manually fill in the `$files` array.
    while ( have_rows( 'img_slider' ) ) : the_row();
        if ( $image = get_sub_field( 'img' ) ) {
            // These are just examples; just rename the keys, add more items, etc.
            // it's all up to you.
            $files[] = array(
                'url'  => $image['url'],
                'text' => get_sub_field( 'img_text' ),
                // ...
            );
        }
    endwhile;
}
//var_dump( $files );

附加代码

此循环还可以为您提供帮助,我曾经从sections字段(最顶层的字段)开始获取滑块项(即图像及其标题/文本):

$post_id = false; // `false` defaults to the global `$post`
if ( have_rows( 'sections', $post_id ) ) :
    while ( have_rows( 'sections', $post_id ) ) : the_row(); // loop #1
        // With the current fields defined in `generate_fields()`, the 'class'
        // is only available in loop #1.
        $section_class = get_sub_field( 'class' );

        echo '<div class="' . esc_attr( $section_class ) . '">'; // start the section

        if ( have_rows( 'section' ) ) {
            while ( have_rows( 'section' ) ) : the_row(); // loop #2
                if ( have_rows( 'module_1' ) ) {
                    while ( have_rows( 'module_1' ) ) : the_row(); // loop #3
                        // In section #2 only.
                        the_sub_field( 'text' );

                        // In section #1 only.
                        if ( have_rows( 'img_slider' ) ) {
                            echo '<ul class="slider">';

                            while ( have_rows( 'img_slider' ) ) : the_row(); // loop #4
                                echo '<li class="slide-item">';

                                $image = get_sub_field( 'img' );
                                echo wp_get_attachment_image( $image['id'] );

                                the_sub_field( 'img_text' );

                                echo '</li>';
                            endwhile; // end loop #4

                            echo '</ul>';
                        }
                    endwhile; // end loop #3
                }
            endwhile; // end loop #2
        }

        echo '</div>'; // end section
    endwhile; // end loop #1
endif;

第1部分(image-slider

enter image description here

第2部分(lorem-ipsum

enter image description here

答案 1 :(得分:1)

我从头开始,重新定义了ACF中的所有字段,并以编程方式仔细地添加了唯一生成的键(某些键是重复的,可能是问题所在)。更新的代码现在可以正常工作了。

下面发布的完整代码(无输出,应与标准ACF文档一起使用)。 我还添加了用于将字段键替换为唯一键的搜寻器。

尽管此新代码可以工作并且完全相同,但是不确定错误在哪里出在原始帖子中。

<?php

if ( function_exists( 'acf_add_local_field_group' ) ):

    add_action("init", "tryangle_generate_sections_fields");
    function tryangle_generate_sections_fields() {
        $indhold_gd = array(
            'key' => 'group_5b3f61bd82eba',
            'title' => 'Indhold',
            'location' => array (
                array (
                    array (
                        'param' => 'post_type',
                        'operator' => '==',
                        'value' => 'page',
                    ),
                ),
            ),
            'position' => 'acf_after_title',
            'menu_order' => 0,
            'style' => 'default',
            'label_placement' => 'top',
            'instruction_placement' => 'label',
            'hide_on_screen' => '',
            'active' => 1,
            'description' => '',
        );
        generate_fields( "allpages", $indhold_gd );
    }


endif;

/**
 * Alters the ACF keys of the passed array, with the pass key affix
 * @param $fields array Take ACF fields array as input.
 * @param $randkey string String which is appended on the key
 *
 * @return array Returns passed array with altered keys
 */
function crawl_generate_keys($fields, $randkey) {
    if(is_array($fields))
    {
        foreach ( $fields as $fk => $f )
        {
            if(!empty(is_array($fields[$fk]['sub_fields'])))
            {
                $fields[$fk]['sub_fields'] = crawl_generate_keys($fields[$fk]['sub_fields'], $randkey);
            }
            else if(!empty(is_array($fields[$fk]['layouts'])))
            {
                $fields[$fk]['layouts'] = crawl_generate_keys($fields[$fk]['layouts'], $randkey);
            }

            $fields[$fk]['key'] = $fields[$fk]['key'] . '_' . $randkey;
        }
    } else {
        $fields['key'] = $fields['key'] . '_' . $randkey;
    }

    return $fields;
}

function generate_fields($uniqid, $gd)
{
    // Declare the available layout modules
    // The different layouts, such as slider, text field, statement slider
    $layouts = array(
        array (
            'key' => '5b3f63d3bc38c_' . $uniqid,
            'name' => 'text',
            'label' => 'Text',
            'display' => 'block',
            'sub_fields' => array (
                array (
                    'key' => 'field_5b3f641bb0588_' . $uniqid,
                    'label' => 'Text',
                    'name' => 'text',
                    'type' => 'wysiwyg',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array (
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'default_value' => '',
                    'tabs' => 'all',
                    'toolbar' => 'full',
                    'media_upload' => 1,
                    'delay' => 0,
                ),
            ),
            'min' => '',
            'max' => '',
        ),
        array (
            'key' => '5b3f6425b0589_' . $uniqid,
            'name' => 'slider',
            'label' => 'Slider',
            'display' => 'block',
            'sub_fields' => array (
                array (
                    'key' => 'field_5b3f6428b058a_' . $uniqid,
                    'label' => 'Slider',
                    'name' => 'slider',
                    'type' => 'repeater',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array (
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'collapsed' => '',
                    'min' => 0,
                    'max' => 0,
                    'layout' => 'table',
                    'button_label' => 'Tilføj billede',
                    'sub_fields' => array (
                        array (
                            'key' => 'field_5b3f642fb058b_' . $uniqid,
                            'label' => 'Billede',
                            'name' => 'image',
                            'type' => 'image',
                            'instructions' => '',
                            'required' => 0,
                            'conditional_logic' => 0,
                            'wrapper' => array (
                                'width' => '20',
                                'class' => '',
                                'id' => '',
                            ),
                            'return_format' => 'array',
                            'preview_size' => 'thumbnail',
                            'library' => 'all',
                            'min_width' => '',
                            'min_height' => '',
                            'min_size' => '',
                            'max_width' => '',
                            'max_height' => '',
                            'max_size' => '',
                            'mime_types' => '',
                        ),
                        array (
                            'key' => 'field_5b3f6453b058c_' . $uniqid,
                            'label' => 'Billede tekst',
                            'name' => 'image_text',
                            'type' => 'wysiwyg',
                            'instructions' => '',
                            'required' => 0,
                            'conditional_logic' => 0,
                            'wrapper' => array (
                                'width' => '',
                                'class' => '',
                                'id' => '',
                            ),
                            'default_value' => '',
                            'tabs' => 'all',
                            'toolbar' => 'full',
                            'media_upload' => 1,
                            'delay' => 0,
                        ),
                    ),
                ),
                array (
                    'key' => 'field_5b40ec12be700_' . $uniqid,
                    'label' => 'Slider class',
                    'name' => 'slider_class',
                    'type' => 'text',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array (
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'default_value' => '',
                    'placeholder' => '',
                    'prepend' => '',
                    'append' => '',
                    'maxlength' => '',
                ),

            ),
            'min' => '',
            'max' => '',
        ),
        array (
            'key' => '5b3f64a5b058d_' . $uniqid,
            'name' => 'statements',
            'label' => 'Udtalelser',
            'display' => 'block',
            'sub_fields' => array (
                array (
                    'key' => 'field_5b3f64b4b058e_' . $uniqid,
                    'label' => 'Udtalelser',
                    'name' => 'statements',
                    'type' => 'post_object',
                    'instructions' => '',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array (
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'post_type' => array (
                        0 => 'udtalelser',
                    ),
                    'taxonomy' => array (
                    ),
                    'allow_null' => 0,
                    'multiple' => 1,
                    'return_format' => 'object',
                    'ui' => 1,
                ),
            ),
            'min' => '',
            'max' => '',
        ),
    );

    // Declare the avaialable columns
    // The key indicates amount columns for that column
    $columns = array (
        1 => array (
            'key' => '5b3f636009d7e1_' . $uniqid,
            'name' => 'one_width_cols',
            'label' => 'En kolonne',
            'display' => 'block',
            'sub_fields' => array(),
            'min' => '',
            'max' => '',
        ),
        2 => array (
            'key' => '5b3f636009d7e2_' . $uniqid,
            'name' => 'two_width_cols',
            'label' => 'To kolonner',
            'display' => 'block',
            'sub_fields' => array(),
            'min' => '',
            'max' => '',
        ),
        3 => array (
            'key' => '5b3f636009d7e3_' . $uniqid,
            'name' => 'three_width_cols',
            'label' => 'Tre kolonner',
            'display' => 'block',
            'sub_fields' => array(),
            'min' => '',
            'max' => '',
        ),
        4 => array (
            'key' => '5b3f636009d7e4_' . $uniqid,
            'name' => 'four_width_cols',
            'label' => 'Fire kolonner',
            'display' => 'block',
            'sub_fields' => array(),
            'min' => '',
            'max' => '',
        ),
        5 => array (
            'key' => '5b3f636009d7e5_' . $uniqid,
            'name' => 'five_width_cols',
            'label' => 'Fem kolonner',
            'display' => 'block',
            'sub_fields' => array(),
            'min' => '',
            'max' => '',
        ),
    );

    // Add layout modules to modules, add modules to columns
    foreach ($columns as $k => $c)
    {
        // Loop for every module to be added to the column
        for ($i = 1; $i <= $k; $i++)
        {
            $keyaffix = 'c' . $k . '_m' . $i;
            $wrapperWidth = 100 / $k;

            $insLayouts = crawl_generate_keys($layouts, $keyaffix);

            $columns[$k]['sub_fields'][] = array(
                'key' => 'field_5b3f63c1b0586_' . $keyaffix . '_' . $uniqid,
                'label' => 'Modul',
                'name' => 'module_' . $i,
                'type' => 'flexible_content',
                'instructions' => '',
                'required' => 0,
                'conditional_logic' => 0,
                'wrapper' => array (
                    'width' => $wrapperWidth,
                    'class' => '',
                    'id' => '',
                ),
                'button_label' => 'Tilføj modul',
                'min' => '',
                'max' => '',
                'layouts' => $insLayouts,
            );
        }
    }

    acf_add_local_field_group(array (
        'key' => $gd['key'] . '_'. $uniqid,
        'title' => $gd['title'],
        'fields' => array (
            array (
                'key' => 'field_5b3f61c74f5b2_' . $uniqid,
                'label' => 'Sektioner',
                'name' => 'sections',
                'type' => 'flexible_content',
                'instructions' => '',
                'required' => 0,
                'conditional_logic' => 0,
                'wrapper' => array (
                    'width' => '',
                    'class' => '',
                    'id' => '',
                ),
                'button_label' => 'Tilføj sektion',
                'min' => '',
                'max' => '',
                'layouts' => array (
                    array (
                        'key' => '5b3f61ce24ec5_' . $uniqid,
                        'name' => 'section',
                        'label' => 'Sektion',
                        'display' => 'block',
                        'sub_fields' => array (
                            array (
                                'key' => 'field_5b3f6359b0585_' . $uniqid,
                                'label' => 'Sektion',
                                'name' => 'section',
                                'type' => 'flexible_content',
                                'instructions' => '',
                                'required' => 0,
                                'conditional_logic' => 0,
                                'wrapper' => array (
                                    'width' => '',
                                    'class' => '',
                                    'id' => '',
                                ),
                                'button_label' => 'Tilføj kolonner',
                                'min' => '',
                                'max' => '',
                                'layouts' => $columns,
                            ),
                        ),
                        'min' => '',
                        'max' => '',
                    ),
                ),
            ),
        ),
        'location' => $gd['location'],
        'menu_order' => $gd['menu_order'],
        'position' => $gd['position'],
        'style' => $gd['style'],
        'label_placement' => $gd['label_placement'],
        'instruction_placement' => $gd['instruction_placement'],
        'hide_on_screen' => $gd['hide_on_screen'],
        'active' => $gd['active'],
        'description' => $gd['description'],
    ));
}