Skip to content

WordPressUtilities/wpu_acf_flexible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WPU ACF Flexible

JS workflow PHP workflow

Quickly generate flexible content in ACF

Add Flexible Content

Display in frontend

echo get_wpu_acf_flexible_content('home-blocks');

Add admin

add_filter('wpu_acf_flexible_content', 'example_wpu_acf_flexible_content', 10, 1);
function example_wpu_acf_flexible_content($contents) {

    $layouts = array();

    $layouts['basique'] = array(
        'label' => 'Basique',
        'sub_fields' => array(
            'title' => array(
                'label' => 'Titre'
            ),
            'content' => array(
                'label' => 'Contenu',
                'type' => 'textarea',
                'wpuacf_hidden_on' => array('post') // Hide this field on post type post
            ),
            'link' => array(
                'label' => 'URL Bouton',
                'type' => 'link'
            )
        )
    );

    $layouts['icons'] = array(
        'label' => 'Icones',
        'sub_fields' => array(
            'title' => array(
                'label' => 'Titre'
            ),
            'icons' => array(
                'label' => 'Icones',
                'type' => 'repeater',
                'sub_fields' => array(
                    'icons_title' => array(
                        'label' => 'Titre'
                    ),
                    'icons_image' => array(
                        'label' => 'Image',
                        'type' => 'image'
                    )
                )
            )
        )
    );

    /* Rich table : A rich table with images and content */
    $layouts['rich_table'] = array(
        'wpuacf_model' => 'rich-table'
    );
    /* Classic content */
    $layouts['content_classic'] = array(
        'wpuacf_model' => 'content-classic'
    );
    /* Features : Columns of content with an image, a text and an optional CTA */
    $layouts['features_list'] = array(
        'wpuacf_model' => 'features'
    );
    /* Downloads : A list of downloadable files */
    $layouts['downloads'] = array(
        'wpuacf_model' => 'downloads'
    );
    /* Logos : A list of clickable logos */
    $layouts['logos'] = array(
        'wpuacf_model' => 'logos'
    );
    /* Video : A simple embed with optional title and content */
    $layouts['video'] = array(
        'wpuacf_model' => 'video'
    );
    /* Image : A simple image with optional title and content */
    $layouts['image'] = array(
        'wpuacf_model' => 'image',
    );
    /* Image - Content : A simple image with title, content and CTA */
    $layouts['image-content'] = array(
        'wpuacf_model' => 'image-content'
    );
    /* Anchor : A quick way to insert an anchor into the content */
    $layouts['anchor'] = array(
        'wpuacf_model' => 'anchor'
    );
    /* Pull Quote : A Quote + Optional Details. */
    $layouts['quote'] = array(
        'wpuacf_model' => 'quote'
    );
    /* Team Quote : A Quote + A Picture + Optional Details. */
    $layouts['team-quote'] = array(
        'wpuacf_model' => 'team-quote'
    );

    $contents['home-blocks'] = array(
        /* Save HTML content in post_content */
        'save_post' => 1,
        /* Create initial layout files */
        'init_files' => 1,
        /* Target post types */
        'post_types' => array('post','page'),
        /* Target page templates */
        # 'page_templates' => array('page-template-flexible.php'),
        /* Target post ids */
        # 'page_ids' => array(1234),
        /* Global Conf */
        'name' => 'Blocks',
        'layouts' => $layouts
    );
    return $contents;
}

Todo

  • Remove Twig/Timber compatibility.

Default blocks

  • JS for default blocks (no dependency).
  • Wrapper DIVs generated by parent.
  • Method to retrieve all blocks at plugin init.
  • Video : Add an option + JS for cover image.

Blocks to create :

  • Slider : Images with title and content ().
  • Tabs : Multiple tabs with content.