Heckgalerie

Maelezo

Heckgalerie keeps your images where WordPress already keeps them. A gallery here is a list of ordinary media attachments, not a second media library with its own database tables, its own upload folder and its own backup problem. That has three consequences you can check: srcset and image sizes come from WordPress, alt texts stay the ones you typed in the media library, and the images appear in the WordPress image sitemap without a plugin bridge.

Two things follow from that decision:

  • Uninstalling loses nothing. Your images are attachments. Delete Heckgalerie and they are still there, still in the media library, still in every post that links to them.
  • Front-end weight stays measurable. All front-end files together are under 15 KB gzipped, and JavaScript is only enqueued on pages that contain a slider or a gallery with the lightbox switched on. Logo bars and the album overview are CSS only, and pages without a gallery load nothing at all.

Two more parts deal with the image files themselves:

  • EXIF and GPS data are stripped from the JPEG files WordPress serves for your uploads: from the resized versions, and for photos too small to be resized, from a cleaned copy that WordPress uses in place of the original. Cameras and phones write coordinates, serial numbers and timestamps into image files; a gallery of an event can publish the location of a private address without anyone noticing. Your uploaded original stays untouched. PNG and WebP files are served unchanged.
  • A migration assistant for NextGEN Gallery reads the existing NextGEN tables, registers the image files as WordPress attachments without moving or copying them, and rewrites the NextGEN shortcodes in your posts. The old version of each post is kept as a revision, and nothing in NextGEN is deleted.

Heckgalerie is part of the Hafenstudios fleet. It works on its own and cooperates with the other fleet plugins once they are active.

Templates

Galleries: grid, masonry, justified and album.
Logo bars: logo grid and single row.
Sliders: crossfade.

The lightbox is included with every template. Block and shortcode use the same renderer, so both produce identical markup.

Albums: several galleries, one page

An album bundles other galleries. Each one gets a tile with a cover image, its name and the image count; one click opens it on the same page, a second click goes back. No subpages, no JavaScript.

Capture data in the lightbox

The lightbox can show a discreet line with camera, aperture, exposure time, ISO, focal length and capture date, for photography sites where that is content. The setting is off by default.

Coordinates are never displayed. Heckgalerie reads exactly those six fields, so a location cannot reach the output even if another plugin writes one into the image data.

Accessibility

The lightbox is a native <dialog> element with full keyboard operation. Every automatic movement stops as soon as the operating system reports “reduce motion”. The admin screens work without JavaScript: the builder is an enhancement, and the shortcode is shown as plain text either way.

Privacy

No tracking pixel, no cookie, no request to another server, in the admin area or on the front end. There is nothing about this plugin to declare in a privacy policy.

Screenshots

Bloku

Kijalizi hiki kinawezesha bloku 1.

  • Heckgalerie Embed a saved gallery, logo bar or slider.

Installation

  1. Upload the plugin and activate it.
  2. Open the “Galleries” menu and click “New gallery”.
  3. Choose a template, add images from the media library, save.
  4. Paste the shortcode shown on any page, or use the “Heckgalerie” block.

FAQ

Do I lose my images if I uninstall Heckgalerie?

No. Your images are ordinary attachments in the media library and stay there. On uninstall Heckgalerie removes something only if you explicitly switch that on, and even then only the gallery definitions, never the images.

Does it work with the Classic Editor?

Yes. Shortcode and block produce the same markup.

Can I adapt the markup to my theme?

Yes, either through the heckgalerie_template_html filter or by supplying your own partial through heckgalerie_template_file.

What happens to my NextGEN galleries during the migration?

Nothing is deleted or moved. The image files stay in wp-content/gallery where they are and are registered as WordPress attachments, which is what gives them srcset and image sizes. Alt texts and descriptions are carried over. Your NextGEN data and files remain untouched, so you can go back at any time.

Does Heckgalerie show where my photos were taken?

No, under no circumstances. The capture data line reads six fields (camera, aperture, exposure time, ISO, focal length, date). Coordinates are not among them and therefore cannot appear by accident.

Is the original photo still on the server?

Yes. Heckgalerie never changes the file you uploaded, just as WordPress keeps the original next to a scaled-down version. Your pages use the cleaned files, but the original keeps its own address in the uploads folder, and anyone who knows that address can open it. If the location of a photo must not become public, remove the location data before uploading. For photos that are too small to be scaled down, the cleaned copy needs about as much disk space as the original. If you regenerate thumbnails after removing Heckgalerie, WordPress can serve the original again.

I still have an older Heckgalerie shortcode with URL lines in it.

It keeps working unchanged. The shortcode syntax of versions 0.1 and 0.2 is rendered exactly as before.

Reviews

Hakuna hakiki za programu-jalizi hii.

Wachangiaji & Wasanidi

“Heckgalerie” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Heckgalerie” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.2.6

  • Fix: photos smaller than the size at which WordPress scales images down (2560 pixels by default) were served with their EXIF and GPS data, for example in the lightbox. Heckgalerie now serves a cleaned copy of these photos, without the metadata and without the preview images that phones attach behind the photo; the uploaded original stays untouched. Regenerating thumbnails keeps the copy and the original attached to the image, also when the setting is switched off later. Photos uploaded before this version are cleaned when their thumbnails are regenerated, for example with wp media regenerate. That applies to Heckgalerie galleries and to images you insert afterwards. A full-size image that is already embedded in a post or page keeps pointing to the original file with its metadata until you insert it again.
  • Fix: the image sizes WordPress generates are cleaned as well, also on servers that keep image metadata when resizing.
  • Fix: cleaned images are written to a temporary file first and only then put in place, so a full disk can no longer leave a truncated image behind.
  • Fix: removing the metadata no longer drops the Adobe color marker that CMYK JPEG files need for correct colors.
  • Fix: a gallery in the trash or saved as a draft no longer appears on the website. Shortcodes, blocks and albums that point to it stay empty.
  • Fix: the block description in the block inserter is English now and can be translated.
  • Change: the gallery builder only shows the options that have an effect on the chosen template. Logo bars, for example, no longer offer the lightbox or capture data.
  • Change: when an image has an alt text in the media library, the builder shows it in the alt text field. “Alt text missing” only appears when there is none.
  • Change: the description now names exactly which templates load JavaScript.
  • Change: the help text of the EXIF setting now says which files are cleaned and that PNG and WebP files stay unchanged.
  • Bundles version 1.4.4 of the shared Hafenstudios library. When several Hafenstudios plugins are active, each of them now registers its copy of the library; the newest copy is loaded and takes anything it lacks from the other copies. An error during start-up no longer takes the site down.

1.2.5

  • Change: the description no longer compares the plugin to other gallery plugins. It describes what the plugin does.

1.2.4

  • Fix: the plugin URI in the header pointed to a page that does not exist yet.

1.2.3

  • Fix: the EXIF stripper now asks WordPress whether a file is writable instead of asking PHP directly.
  • Fix: the uninstall routine no longer suppresses filters when it collects galleries, so other plugins can still see the query.

1.2.2

  • Change: the plugin now runs on PHP 8.0 and newer. The previous requirement of 8.1 was higher than the code actually needs.
  • Change: the NextGEN assistant no longer estimates how many kilobytes you save. The number was a fixed guess, not a measurement.

1.2.1

  • Fixed: the gallery builder loaded the plugin stylesheet under a handle that the bundled shared library had already taken, so the live preview was unstyled.
  • All labels in the gallery builder are translatable now; a few were hard-coded in JavaScript before.
  • The bundled shared library now ships only the classes this plugin actually calls.

1.2.0

  • First release in the WordPress plugin directory.
  • Source strings are English; translations are handled through translate.wordpress.org.
  • Database table names in the NextGEN migration now use the %i identifier placeholder of wpdb::prepare().

1.1.3

  • Packages up to 1.1.2 contained internal development files. This version ships program files only.
  • Fixed: the NextGEN migration assistant could read files outside the WordPress installation through a crafted path. Paths leading out of the installation directory are now rejected.
  • Hardened: structured data output is escaped more strictly, so an image alt text cannot terminate the block early.
  • Fixed: the migration assistant reported “shortcode converted” even when the post could not be saved. It now says that it did not work.

1.1.1

  • Fixed: a PATCH on the gallery endpoint now changes only the fields sent with it. Previously missing fields were reset to their defaults, so updating just the images could discard the chosen layout. PUT still replaces the whole gallery on purpose.

1.1.0

  • New: albums. A gallery can bundle other galleries, each as a tile with cover image, name and image count. No JavaScript, no subpages.
  • New: capture data in the lightbox (off by default). Camera, aperture, exposure time, ISO, focal length, date, never coordinates.
  • Improved: the builder now shows preview images of saved galleries.
  • Unchanged: all galleries from 1.0 and the complete old shortcode syntax render character for character as before.

1.0.0

  • First version: galleries (grid, masonry, justified), logo bars (logo grid, single row), slider (crossfade).
  • Lightbox as a native dialog element.
  • NextGEN migration assistant with shortcode rewriting.
  • EXIF and GPS removal from the web-sized versions.
  • Block and shortcode through one shared renderer.
  • Compatible with the shortcode syntax of versions 0.1 and 0.2.