Gallery

Displays images for the Gallery field type (e.g. ACF Gallery field).

In the Lite version, if you add a Gallery field to your View it will display the list of images in the default layout. In the Pro version you’ll be able to change the Gallery Layout to Masonry plus the option to enable the Lightbox with slider options.

How to use it

Edit or add a new View.

Select the Group containing the gallery field.

Select the Gallery field from the Field dropdown, and select the Image Size.

Grid Layout

Example of the Grid, taken from the WPLake's ACF Gallery article.

The CSS grid feature is the simplest way to display Gallery items as a grid.

The example code below shows how to set this up. Change '2' to your desired of columns in the grid-template-columns rule, and adjust the gap, which controls the space between items, from 20px to your preferred value:

Twig template:

{% if gallery.value %}
    <div class='acf-view__gallery'>
        {% for image_item in gallery.value %}
            <img class='acf-view__image' src="{{ image_item.value }}"
                 width="{{ image_item.width }}" height="{{ image_item.height }}" alt="{{ image_item.alt }}"
                 decoding="{{ image_item.decoding }}" loading="{{ image_item.loading }}"
                 srcset="{{ image_item.srcset }}" sizes="{{ image_item.sizes }}">
        {% endfor %}
    </div>
{% endif %}

CSS code:

#view__gallery {
 display: grid;
 grid-template-columns: 1fr;
 gap: 20px;
}

@media screen and (min-width:992px) {
 #view__gallery {
  grid-template-columns: repeat(2, 1fr);
 }
}

Masonry Layout (Pro)

From the Gallery layout dropdown, select the Classic or Flat masonry option and press the Update button.

The Classic masonry employs the Macy.js, while Flat uses a Flat Masonry script from Lightsource.

Pro tip: You can apply both Masonry and Lightbox to the same gallery field simultaneously to provide a visually appealing preview and allow for a detailed view on click.

After saving, switch to the CSS & JS tab, and optionally fine-tune the instance settings:

Macy.js

Example of the Macy.js, taken from the WPLake's ACF Gallery article.

In the Masonry instance settings, you can fine-tune the number of columns, the gap between items (margin), and the responsive behaviour. Check the Macy.js documentation to learn more.

var gallery = this.querySelector('.acf-view__gallery');
if (gallery) {
	/* https://github.com/bigbite/macy.js */
	new Macy({
		container: gallery,
		columns: 4,
		margin: {
			x: 0,
			y: 0,
		},
		breakAt: {
			992: 2,
			400: 1,
		},
	});
}

Flat Layout

Example of the Flat masonry, taken from the WPLake's ACF Gallery article.

The flat masonry is a simple script, which offers only the basic settings, including gap between items and min-row height:

var gallery = this.querySelector('.acf-view__gallery');
if (gallery) {
	/* https://gitlab.com/lightsource/masonry */
	new AcfViewsMasonry(
		gallery,
		{
			ROW_MIN_HEIGHT: 180,
			GUTTER: 20,
			MOBILE_GUTTER: 10,
			MOBILE_WIDTH: 992,
		}
	);
}
Example of the Inlline-Carousel, taken from the WPLake's ACF Gallery article.

From the Gallery layout dropdown, select the Inline-Gallery option and press the Update button.

The Inline-Gallery option employs the Carousel feature of the LightGallery library.

After saving, switch to the CSS & JS tab, and optionally fine-tune the instance settings:

var gallery = this.querySelector('.acf-view__gallery');
if (gallery) {
	var container = document.createElement('div');
	container.classList.add('acf-view__inline-gallery');
	gallery.parentElement.insertBefore(container, gallery);

	/* https://www.lightgalleryjs.com/docs/settings/#lightgallery-core */
	new lightGallery(gallery, {
		container: container,
		showMaximizeIcon: true,
		download: true,
		enableDrag: false,
		allowMediaOverlap: false,
		closable: false,
		plugins: [window.lgThumbnail,],
	}).openGallery();
}

Images slider (Pro)

Example of the images slider, taken from the WPLake's ACF Gallery article.

From the Enable slider dropdown, select the Splide option and press the Update button. This option employs the Splide library, and have the following defaults:

var gallery = this.querySelector('.acf-view__gallery');
if (gallery) {
	/* https://splidejs.com/guides/options/ */
	new Splide(gallery, {
		type: 'loop',
		perPage: 1,
		perMove: 1,
	}).mount();
}
Example of the lightbox, taken from the WPLake's ACF Gallery article.

Lightbox shows a zoom icon on image hover and allows readers to click and open an image in full-screen mode and switch between items if there are others.

Pro tip: You can apply both Masonry and Lightbox to the same gallery field simultaneously to provide a visually appealing preview and allow for a detailed view on click.

From the Enable lightbox dropdown, select the LightGallery or Simple (no settings) option and press the Update button. The LightGallery option employs the LightGallery library, and have the following defaults:

var gallery = this.querySelector('.acf-view__gallery');
if (gallery) {
	/* https://www.lightgalleryjs.com/docs/settings/#lightgallery-core */
	new lightGallery(gallery, {
		closeOnTap: true,
		counter: true,
		download: false,
		allowMediaOverlap: false,
		enableDrag: false,
		plugins: [window.lgThumbnail,],
	});
}

FAQs

Masonry last image stretching

How to fix it using CSS overrides

Copy the following CSS snippet into your ACF View -> Advanced Tab -> CSS Code field.

// masonry images last image fix stretching
#view .acf-view__image-outer {
    width: fit-content !important;
}

Last updated

Was this helpful?