Black Friday

65% off Annual plans

25% off Lifetime · 10 per week

Ends December 2

Get the deal

Made in Europe

9 min read

How to Make a WordPress Gallery With a Download Option

How to create a gallery page for WordPress with downloadable images

A WordPress gallery with a download option lets visitors save each photo on its own, or the whole gallery as one ZIP file. WordPress’s own Gallery block has no download button, so you need a gallery plugin.

Who wants your photos? Guests after Saturday’s fundraiser, a wedding client collecting 300 edited shots, journalists who need the 12 product photos in your press kit, parents after school photo day.

Sometimes giving photos away is the whole point. A free download turns a visitor into a fan who shares your work and recommends you.

I’ll set it up step by step in Modula, the gallery plugin we make. Then you’ll see which file visitors actually get, what happens to your watermark, and where a password stops protecting you.

What you need

A WordPress photo gallery with a download option needs Modula, Modula Pro on the Business plan, and a server that can build ZIP files.

  • Modula (free). Go to Plugins → Add Plugin, search for Modula, install and activate it. It has 160,000+ active installations.
  • Modula Pro. Our pricing page lists Download Images under Business, and Agency includes everything in Business. Install Pro and activate your license.
  • The Download extension. Switch on Download in Modula → Extensions (how).
  • PHP’s ZIP extension. Every “download all” button needs it; without it, those buttons don’t appear. Your host can switch it on.

Still comparing plugins? See our roundup of WordPress gallery plugins.

What your visitors can download

A Modula gallery with downloads on gives visitors four ways to save photos: two on the page, two in the lightbox (the full-screen view).

Where visitors clickWhat they getThe setting
The download link on a photoThat photo, at your Download sizeInteract → Download one image
The button above or below the galleryEvery photo in one ZIPInteract → Download the whole gallery
Download in the lightbox toolbarThe photo as the lightbox shows itLightbox → Download button
Download all in the lightbox toolbarThe whole gallery as a ZIPLightbox → Download all button

Watch the third row: for photos over 2,560 px, it gives a smaller copy.

A six-photo Modula gallery with the Download All Images button centered under it.

Build the gallery

A Modula gallery takes three steps to set up. Already have one? Skip ahead.

  1. Go to Modula → Content and click New gallery. Name it something you’ll recognize, like “Smith wedding finals”.
  2. Click + Add to pick photos from your Media Library, or open the arrow next to it and choose Upload files. Got hundreds? Add them in bulk.
  3. Layout → Type sets the look: 14 gallery types, 7 of them free. For a wedding-sized set, try Masonry or Justified grid.

Don’t look for a Save button. Every change saves itself, and the top bar shows All changes saved.

Good to know

Video gallery? Downloads cover photos only: the Video gallery type has no download settings, and videos in mixed galleries get no button.

Turn on the download option

To make images downloadable in Modula, open the gallery’s Interact section and turn on Enable download. Two switches appear, and in a new gallery both start on:

  • Download one image gives every photo its own download link.
  • Download the whole gallery adds one button that packs every photo into a single ZIP.

For a client gallery, I’d keep both: people want their favorite now and the full set later.

Interact section of the Modula editor: Enable download, both download switches, the gallery button and Download size set to Full

Choose the download size

Download size decides which file the photo links and the ZIP hand out. A new gallery starts at Full. On a gallery you made earlier, check it before you share the page.

  • Full hands out each photo exactly as you uploaded it. Pick it for client deliveries, prints and press kits.
  • Large is WordPress’s 1,024 px copy by default, fine for a phone wallpaper or a social post.
  • Medium and Thumbnail (300 px and 150 px by default, per Settings → Media) are preview sizes, too small to print.

Style the Download All button

Turning on Download the whole gallery reveals The gallery button box, where you style the ZIP button:

  • Label: the button text, like “Download all 300 photos”.
  • Where it sits: above the photos, under them, or in both places.
  • Alignment, Text and Background: position and colors, to match your theme.
  • Icon before the label: a small download icon, with its own Icon color.
  • Zip file name: what the saved file is called on your visitor’s computer.

The Zip file name mixes your words with tags Modula fills in: %%gallery_title%% (the default), %%gallery_id%%, %%gallery_author%%, %%gallery_date%% and %%archive_generated_time%% (the date the ZIP was built). Try smith-wedding-%%gallery_date%%. There’s a privacy reason to change it, too.

Put download buttons in the lightbox

The lightbox is where people fall for a photo, so give it download buttons too. Open Lightbox → More settings → Lightbox & Links, leave Show toolbar on, and look for two switches:

  • Download button grabs just the photo on screen.
  • Download all button grabs the full set as a ZIP.

Mind the defaults. Once you enable downloads, Download all button comes on by itself, and Download button doesn’t. If visitors should take one photo at a time, turn Download button on and Download all button off. Otherwise someone who wants one photo leaves with the entire gallery.

Lightbox toolbar settings with Download button and Download all button on

Good to know

No download link on your photos? It lives in each photo’s share menu, so it only shows when sharing is on. In Interact → Share, turn on Enable sharing and pick at least one network (Email alone is the quietest). Each photo then gets a share arrow with Download image inside.

A photo tile with its share menu open: X, Facebook, Pinterest, Email and, last, the Download image icon.

Put the gallery on a page

Every Modula gallery has a shortcode, a one-line tag WordPress turns into the gallery. Click Embed (top right), then Copy beside Shortcode, and paste it into a page or post.

The Embed menu in the Modula editor with the shortcode and its Copy button

Not a shortcode person? Use the Modula block, or Modula’s widget or module in three page builders: Elementor, Divi and Beaver Builder (shortcode guide).

Want the ZIP button elsewhere on the page? It has its own shortcode:

[modula-download id="123"]

Swap in your gallery’s ID. With Enable download off, the button won’t appear.

Then test it like a stranger: open the page in a private window, download a photo and the ZIP, and check the file sizes.

Which file your visitors get

With Modula’s Download size on Full, the photo links and the ZIP give visitors your original upload, untouched. The lightbox’s Download button is the exception.

Here’s why. Since WordPress 5.3, any photo over 2,560 px gets a smaller “-scaled” copy, and that’s what your site shows (WordPress core). A 6,000 × 4,000 px camera file appears as 2,560 × 1,707.

  • Photo links and the ZIP: the original, even when a “-scaled” copy exists. In our October 2026 test on Modula 3.0, the ZIP’s files matched the uploads exactly.
  • The lightbox Download button: the copy the lightbox shows, so the 2,560 px version for big photos, whatever Download size says.

For print-ready files, point clients to the photo links or the ZIP, not the lightbox.

Clicking the ZIP button, visitors notice:

  • No quality loss. Modula stores the photos in the ZIP without recompressing them.
  • Progress on the button. It reads “Preparing…”, then a percentage, then “Downloading…”, as Modula packs photos 25 at a time.
  • A faster second time. Modula keeps the ZIP for up to 30 days and rebuilds it only when you change the gallery.

Watermarks and downloads

If you watermark a Modula gallery, every download carries the watermark, Full size and the ZIP included. Modula writes the watermark into the image files and rebuilds every size from them.

Great for proofs, a problem for your client’s finals.

  • Keep a clean copy first. Before you click Watermark images, check that Keep originals without watermark is on. If the gallery uses your site-wide watermark, the switch that counts is Modula → Settings → Protection → Keep the original images, and in Modula 3.0 it’s off by default.
  • Downloads never use that backup. It lets you undo the watermark; it doesn’t hand out clean files.
  • New photos need another click. Photos you add later stay clean until you click Watermark images again.
Watermark settings with Keep originals without watermark on, above the Watermark images button

Want watermarked previews and clean downloads? Use two galleries with separate uploads. Putting the same Media Library photos in both won’t work, because the watermark lives in the file. More in how to watermark photos.

Passwords and downloads

A password on a Modula gallery locks the download buttons, but not the files behind them.

With Password Protect (Trio plan and up), visitors see a password form instead of your photos. Until they enter it, there’s nothing to click, and Modula turns away any ZIP request. Our password-protected gallery guide covers the setup.

The password form visitors see instead of the gallery

Watch out

Where a password stops protecting: anyone with a file’s direct address can still open it. That includes the ZIP, which sits in wp-content/uploads/modula-zips/ under your Zip file name; in our October 2026 test, it opened for a logged-out visitor. If that’s just the gallery title, it’s easy to guess, so add a word nobody would guess.

Two more limits:

  • It’s not a vault. Wedding photos, yes. Contracts or unreleased product shots need real access control.
  • There’s no download control. No limits, PINs, expiring links or download counts. Need those? A hosted client-gallery service fits better.

Want nobody downloading anything? See how to protect images from theft.

Deliver photos to clients: proof first, download after

If clients pick favorites before you edit, run the choosing and the delivery in two separate Modula galleries.

Image Proofing (Business plan) lets clients mark the photos they want. But in Modula 3.0, a proofing round doesn’t switch downloads off. A Download All button below the gallery, where it sits by default, stays on the page while your client is still choosing. One click, and they have every proof.

  1. The proofing gallery: no downloads. Invite links open the gallery’s own page, so turn on Galleries get their own page in Modula → Settings → Galleries (Standalone docs). That gives every gallery a public page, one more reason for the password in step 2.
  2. The delivery gallery: the edited finals, downloads on Full, and a password.
  3. Send the page link and password, not the invite. After the round ends, the invite only shows “This proofing round is over”.

The full workflow is in how to deliver photos to clients.

Download button not working?

When Modula’s downloads misbehave, look in three places: the gallery settings, your page cache and your hosting.

  • No download link on the photos. Check Download one image, then turn on Enable sharing with at least one network.
  • No Download All button. Check Enable download and Download the whole gallery. Still missing? Ask your host to switch on PHP’s ZIP extension.
  • The button stops and goes back to its label. An old cached copy of the page is a likely cause, so clear the cache or exclude the page. Huge gallery? Ask your host about timeouts.
  • The photo opens in a tab instead of saving. Browsers save a linked file only from the page’s own domain (MDN). An offload or CDN plugin that moves your media elsewhere breaks that.
  • The downloads are tiny. Set Download size to Full.
  • The right password isn’t accepted. Your page cache is probably serving a saved copy. Exclude the page and add WordPress’s password cookie (wp-postpass_*) to your cache exceptions.

Frequently asked questions

WordPress alone gets you halfway. Link Gallery block images to their media file so each photo opens by itself, ready to save, or zip the photos yourself and add the ZIP with a File block. Per-photo download links and an automatic ZIP take a gallery plugin, such as Modula Pro.

Yes. Modula’s Download All button downloads all images as a ZIP in one click, packing 25 photos at a time while it counts up in percent. Download the whole gallery turns it on, and the lightbox can get a Download all button too.

Not with Download size on Full. The photo links and the ZIP hand out your original upload; in our October 2026 test, the ZIP’s files matched byte for byte. Only the lightbox’s Download button gives the screen copy, which WordPress caps at 2,560 px.

The free options are thin (checked October 2026). WP Gallery Download Link adds a link under each image, but only for the classic gallery shortcode, and nobody has updated it since 2018. Modula’s free version builds the gallery; its download buttons are in Pro’s Business plan.

No. Modula 3.0 has no download limits, PINs, expiring links or download counts. A gallery password decides who can use the buttons, and that’s all. To see who took which file, or end downloads after a deadline, a hosted client-gallery service fits better.

Yes. Modula albums (Trio and up) have their own download settings, including a whole-album button, and like all downloads they need the Business plan. The album’s ZIP holds the photos from its public galleries, handy when school photo day is split into one gallery per class.

Make your next gallery
the one people remember.