Title: Qaiyo Clean Gallery
Author: qaiyo
Published: <strong>Июль 25, 2026-ж.</strong>
Last modified: Октябрь 9, 2026-ж.

---

Плагиндерди издөө

![](https://ps.w.org/qaiyo-clean-gallery/assets/icon-256x256.png?rev=3634095)

# Qaiyo Clean Gallery

 Автору [qaiyo](https://profiles.wordpress.org/qaiyo/)

[Жүктөө](https://downloads.wordpress.org/plugin/qaiyo-clean-gallery.1.5.0.zip)

 * [Кенен маалымат](https://ky.wordpress.org/plugins/qaiyo-clean-gallery/#description)
 * [Сын-пикирлер](https://ky.wordpress.org/plugins/qaiyo-clean-gallery/#reviews)
 *  [Орнотуу](https://ky.wordpress.org/plugins/qaiyo-clean-gallery/#installation)
 * [Development](https://ky.wordpress.org/plugins/qaiyo-clean-gallery/#developers)

 [Колдоо](https://wordpress.org/support/plugin/qaiyo-clean-gallery/)

## Сүрөттөө

Qaiyo Clean Gallery is a focused, dependency-free WordPress gallery plugin built
for performance and clean markup. Each gallery is a Custom Post Type with its own
settings, usable through a Gutenberg block or a shortcode. The frontend ships **
zero JavaScript dependencies** — no jQuery, no Swiper, no PhotoSwipe — just a few
kilobytes of plain modern JavaScript.

Unlike most gallery plugins, Qaiyo Clean Gallery is genuinely portable and self-
hostable: you can move a whole gallery — with its images — from one site to another
in a single ZIP file, it syncs live with your HappyFiles media folders, and it never
phones home or loads your images through a third-party CDN.

#### What makes it different

 * **One-click ZIP export / import** — move an entire gallery (settings, categories
   and the original image files) to another site in one downloadable ZIP. The source
   site does not have to stay online during import, and images transfer byte-for-
   byte. No database exports, no phpMyAdmin, no extra migration plugin.
 * **HappyFiles live-link** — point a gallery at a HappyFiles media folder and it
   stays in sync automatically. Drop new images into the folder and they appear 
   in the gallery — no re-import step.
 * **Import from Modula** — bring your Modula galleries over without re-uploading
   a single image. You see what each gallery will become, and what will be different,
   before anything is created; Modula itself is left untouched.
 * **Duplicate image finder** — scans your whole media library and groups byte-identical
   copies of the same picture, even when the filenames differ, so you can reclaim
   wasted disk space. It reports which galleries use each copy and never deletes
   anything by itself.
 * **No lock-in, no tracking** — your images stay on your server and nothing is 
   sent anywhere automatically. The only external interactions are the optional,
   click-only social share links and an optional WordPress.org directory query on
   an admin screen (see “External services” below).
 * **Truly multilingual** — ships with 11 languages, each with correct plural rules.

#### Gallery layouts

 * **Grid** — classic fixed-ratio column grid
 * **Masonry** — Pinterest-style variable-height columns
 * **Standard** — uniform 1:1 squares for portfolios and shops
 * **Justified** — equal-height rows with varying widths (Flickr style)
 * **Bento** — asymmetric multi-sized grid with hero cells
 * **Showcase** — threes: one large image beside two stacked ones, mirrored every
   other group
 * **Mosaic** — tiles of mixed sizes packed edge to edge with no gaps; the arrangement
   is worked out on the server, so it is the same on every visit and nothing jumps
   while the page loads

You pick one from a row of mock-ups above the images, not from a dropdown — each
card draws what the layout actually does, and only the settings that layout uses
are shown underneath it.

Not sure which one fits? The **Suggest a layout** button in the gallery editor analyses
the aspect ratios of your images — how many are portrait, landscape or square, and
how much they vary — and recommends the layout that suits them best, with a one-
line explanation. It works before the gallery is even saved.

#### Lightbox

 * Keyboard navigation (arrow keys / Esc) and touch-swipe friendly
 * Image counter, captions and a responsive mobile layout
 * **Deep linking** — opening an image updates the URL (`#qcg={id}&img={index}`)
   so an exact image can be linked, bookmarked and shared
 * **Social share buttons** inside the lightbox — Facebook, X, Pinterest and copy-
   link
 * **Right-click protection** — optional casual-download protection (disables right-
   click and image drag)

#### All-galleries view

The `[qaiyo_clean_gallery_all]` view lists every gallery as a paged card grid with:

 * Category filter buttons
 * Sorting by date (newest / oldest) or title (AZ / ZA)
 * Load-more pagination
 * A 3 / 4 column switcher whose icon colors you can customize
 * **Open in place** — add `open="lightbox"` and a click on a card opens that gallery’s
   photos in the lightbox right there, instead of leaving for the gallery page. 
   The photos are fetched only when a card is opened, so a listing of many large
   galleries stays light. A gallery the visitor may not see (password protected,
   for instance) still leads to its own page, where the password form is.

#### Import from Modula

If the site has Modula galleries, **Clean Gallery  Export / Import** shows an **
Import from Modula** card. It works even after Modula has been deactivated.

 * **Nothing is uploaded again.** The new galleries point at the same images in 
   your Media Library.
 * **You see the plan first.** Each Modula gallery is listed with the layout it 
   will get and a plain list of what will be different — a column count outside 
   the supported range, per-image links, filters, a gallery type with no counterpart.
   Nothing is dropped silently.
 * **Modula is not touched.** Its galleries, settings and albums stay exactly as
   they are, so you can compare the two side by side.
 * **Safe to run again.** A gallery that is already imported is skipped, not duplicated.
 * **Layouts carry over.** Modula’s Creative type becomes a Mosaic; a Custom grid
   keeps the size you gave each image; Masonry and Justified map to their namesakes.
 * **Albums become categories.** Each imported gallery is filed under the album 
   it belonged to. An album that opened its galleries in a lightbox keeps doing 
   so: its embed is swapped for a listing with `open="lightbox"`.
 * **Everything can be undone.** If a gallery did not come over the way you wanted,
   undo its import: the gallery goes to the trash (recoverable), and wherever a 
   Modula embed was swapped for it, the original is put back — exactly as it was,
   without losing anything else you changed on the page since. A gallery that is
   still shown somewhere is never removed from under that page; you are told where
   it is used instead.
 * **Embeds can be swapped for you.** Pages that show a Modula gallery through a
   shortcode or a block are listed, and the embed can be replaced with its counterpart.
   The page as it was is saved as a revision first, and a page is left alone if 
   that cannot be done. Pages built with a page builder are listed too, but never
   edited — swap those in the builder.

#### Overview dashboard

A dedicated landing page under **Clean Gallery  Overview** shows at-a-glance stats—
number of galleries, published, drafts, total images, views, categories and HappyFiles
status — plus quick actions for creating a gallery, finding duplicates, exporting/
importing and opening help.

#### Placeholder images

Waiting for the client’s photos? Turn on **Placeholder images** in the gallery editor,
pick a number and an orientation mix, and the gallery renders neutral sample tiles
with realistic proportions in whatever layout you chose — Masonry, Justified and
Showcase behave exactly as they will with the real pictures. Placeholders are bundled
with the plugin, never added to the Media Library, not counted as views, and disappear
automatically as soon as a real image is added.

#### Gallery views

A private view counter shows which galleries people actually look at — in the gallery
list (sortable), in the editor sidebar and as a total on the Overview page. A view
is counted once per visitor session, when the gallery comes into view. It stores
one number per gallery on your own site: no cookies, no IP addresses, no external
service. Logged-in editors and known bots are not counted, and the counter can be
switched off under Info & Help.

#### Qaiyo Dashboard card

If you run **Qaiyo Admin Booster**, its WordPress Dashboard widget collects a small
summary card from every active Qaiyo plugin. Clean Gallery’s card shows your galleries,
images and your most viewed (or largest) gallery. With **Qaiyo Social Video Embed**
active too, the two merge into one **Media statistics** card that also counts the
video embeds in your published content. No data leaves your site.

#### Duplicate image finder

**Clean Gallery  Duplicates** scans your media library and finds pictures that are
byte-for-byte identical, even if they were uploaded under different names (`photo.
jpg`, `photo-1.jpg`, `photo-scaled.jpg`). Every image is fingerprinted with a content
hash — the same technique the gallery importer uses to avoid re-uploading files 
it already has.

 * The scan runs in batches, so even a large media library never hits a PHP time
   limit
 * Results are grouped per duplicate set, showing the total number of redundant 
   files and the disk space they waste
 * Each copy lists the galleries that use it, and links straight to the Media Library
   entry
 * Nothing is deleted automatically — you stay in control of what gets removed

#### Performance & SEO

 * Zero JavaScript dependencies on the frontend
 * Native browser lazy loading (`loading="lazy"`)
 * Automatic image compression on upload — images over ~1.5 MB are compressed to
   under ~1 MB using Imagick or GD
 * schema.org structured data: `ImageGallery`, `ImageObject` and `ItemList`
 * ARIA labels and full keyboard navigation

#### Editor & embedding

 * Each gallery is a Custom Post Type with a drag-and-drop image manager
 * A copy-ready shortcode box on the editor screen
 * A native **Qaiyo Clean Gallery** Gutenberg block (server-side rendered)
 * Theme-overridable single-gallery template

Shortcodes:

 * `[qaiyo_clean_gallery id="42"]` — a single gallery. Optional attributes: `layout`,`
   columns`, `lightbox`, `captions`, `lazy`, `gap`, `row_height`, and `ids="101,102"`
   to render attachments directly without a gallery post.
 * `[qaiyo_clean_gallery_all]` — all galleries as a paged card grid. Attributes:`
   card_columns`, `gallery_columns`, `filter`, `orderby`, `order`, `per_page`, `
   category`, and `open="lightbox"` to open a gallery’s photos in place instead 
   of on its own page.

#### Internationalization

Bundled translations: English, Hungarian, German, French, Spanish, Italian, Portuguese,
Russian, Japanese, Turkish and Polish. Locale variants (for example de_CH, fr_BE,
es_MX, pt_BR) automatically fall back to their base language.

#### For developers

Everything is namespaced under the `qaiyo_clean_gallery` prefix, with filters for
customization:

 * `qaiyo_clean_gallery_layouts` — register your own layout (see HOOKS.md)
 * `qaiyo_clean_gallery_justified_row_height` — target row height for the Justified
   layout
 * `qaiyo_clean_gallery_happyfiles_taxonomy`, `qaiyo_clean_gallery_hf_orderby`, `
   qaiyo_clean_gallery_hf_order` — HappyFiles folder source and ordering
 * `qaiyo_clean_gallery_compress_threshold`, `qaiyo_clean_gallery_compress_max_bytes`,`
   qaiyo_clean_gallery_compress_quality_step`, `qaiyo_clean_gallery_compress_quality_floor`—
   image compression tuning
 * `qaiyo_clean_gallery_cpt_slug`, `qaiyo_clean_gallery_tax_slug` — the single-gallery
   and category URL slugs

#### Part of the Qaiyo family

Qaiyo Clean Gallery is part of the Qaiyo plugin family — https://qaiyo-plugins.com—
support: info@qaiyo-plugins.com

### External services

This plugin does not send any data anywhere on its own and does not use any tracking.
It interacts with the following external services, in the ways described below.

#### Facebook, X and Pinterest share links (optional)

When the **Social share buttons** setting is enabled (Clean Gallery  Info & Help),
the lightbox shows share links for Facebook, X and Pinterest. No connection to these
services is made while browsing — a request happens **only when a visitor clicks
one of the share links**, which opens that provider’s standard share page in a new
browser tab.

What is sent on click, as URL parameters of the opened share page: the URL of the
page containing the gallery (all three services), and for Pinterest additionally
the URL of the shared image and its caption/title, so the provider can pre-fill 
the share dialog. The plugin itself transmits nothing; the visitor’s browser opens
the provider’s page, where the provider’s own terms apply:

 * Facebook (Meta Platforms, Inc.) — [Terms of Service](https://www.facebook.com/legal/terms),
   [Privacy Policy](https://www.facebook.com/privacy/policy/)
 * X (X Corp.) — [Terms of Service](https://x.com/en/tos), [Privacy Policy](https://x.com/en/privacy)
 * Pinterest (Pinterest, Inc.) — [Terms of Service](https://policy.pinterest.com/en/terms-of-service),
   [Privacy Policy](https://policy.pinterest.com/en/privacy-policy)

The copy-link button only copies the URL to the visitor’s clipboard locally; it 
contacts no service. If the Social share buttons setting is disabled, none of these
links are rendered.

#### WordPress.org plugin directory (admin only)

The admin-only **Discover Qaiyo** screen queries the official WordPress.org plugin
directory API (`api.wordpress.org`) to list our other free plugins. The request 
is made only when an administrator opens that screen, contains only the plugin-author
query (no personal data), and its result is cached for 12 hours. This is the same
WordPress.org infrastructure the built-in “Add Plugins” screen uses. See the [WordPress.org privacy policy](https://wordpress.org/about/privacy/).
No request is made on the frontend of your site.

## Блоктор

This plugin provides 1 block.

 *   Qaiyo Clean Gallery

## Орнотуу

 1. In your WordPress admin, go to **Plugins  Add New  Upload Plugin** and upload the`
    qaiyo-clean-gallery` ZIP (or copy the `qaiyo-clean-gallery` folder to `/wp-content/
    plugins/`).
 2. Activate the plugin through the **Plugins** menu.
 3. Create your first gallery under **Clean Gallery  Add New**: add a title, pick images
    from the Media Library, choose a layout, and publish.
 4. Copy the shortcode from the editor’s **Shortcode** box, or add the **Qaiyo Clean
    Gallery** block, and embed it in any post or page.

#### Requirements

 * WordPress 5.8 or newer
 * PHP 7.4 or newer
 * Imagick (preferred) or GD for automatic image compression

## FAQ.KG

### Does the view counter track my visitors?

No. It stores a single number per gallery on your own site. It sets no cookies, 
stores no IP address or any other visitor data, and contacts no outside service.
To avoid counting the same person twice it only uses the browser’s session storage,
which is cleared when the tab is closed. You can switch the counter off under Clean
Gallery  Info & Help.

### Does it add any JavaScript libraries to my site?

No. The frontend has zero JavaScript dependencies — no jQuery, no Swiper, no PhotoSwipe.
Just a small amount of plain JavaScript.

### How do I move a gallery to another website?

Go to **Clean Gallery  Export / Import**, pick a gallery and download the ZIP. On
the other site, open the same screen, upload the ZIP, and the gallery is recreated
as a draft with all of its images. The source site does not need to stay online 
during the import.

### Does it work with HappyFiles?

Yes. If HappyFiles (free or Pro) is active, you can point a gallery at a HappyFiles
folder and it stays in sync automatically — new images added to the folder appear
in the gallery with no re-import. If HappyFiles is not installed, galleries work
as normal manual galleries.

### What happens to a HappyFiles-linked gallery when I import it somewhere without HappyFiles?

It imports as a normal manual gallery containing the same images — no data is lost.
If HappyFiles is active on the target site, the folder structure is recreated and
the gallery stays live-linked.

### Which languages are included?

English, Hungarian, German, French, Spanish, Italian, Portuguese, Russian, Japanese,
Turkish and Polish.

### Can I override the single gallery template?

Yes. Copy `templates/single-qaiyo_clean_gallery.php` from the plugin into your theme’s
root folder and edit it there.

### Does the plugin send any data to external servers?

No data is sent automatically. Your images and galleries stay on your own server,
and the plugin sends nothing to qaiyo-plugins.com. The only network interactions
are the optional social share links in the lightbox (opened only when a visitor 
clicks them) and an optional query to the WordPress.org plugin directory on the 
admin-only “Discover Qaiyo” screen — both documented in detail under “External services”
below.

## Сын-пикирлер

There are no reviews for this plugin.

## Contributors & Developers

“Qaiyo Clean Gallery” is open source software. The following people have contributed
to this plugin.

Мүчөлөрү

 *   [ qaiyo ](https://profiles.wordpress.org/qaiyo/)

[Translate “Qaiyo Clean Gallery” into your language.](https://translate.wordpress.org/projects/wp-plugins/qaiyo-clean-gallery)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/qaiyo-clean-gallery/),
check out the [SVN repository](https://plugins.svn.wordpress.org/qaiyo-clean-gallery/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/qaiyo-clean-gallery/)
by [RSS](https://plugins.trac.wordpress.org/log/qaiyo-clean-gallery/?limit=100&mode=stop_on_copy&format=rss).

## Өзгөртүүлөр

#### 1.5.0

 * **New: Mosaic layout.** Tiles of mixed sizes, packed edge to edge with no gaps.
   The arrangement is calculated on the server and is the same on every visit, so
   the page can be cached and nothing shifts while it loads. A **Variation** number
   deals the tiles differently when you want another look, and the layout adapts
   to the width of the gallery itself — a gallery in a narrow column on a wide screen
   gets the narrow arrangement.
 * **New: import from Modula.** Bring Modula galleries over without re-uploading
   anything: the new galleries use the same images in your Media Library. Before
   anything is created you see what each gallery will become and what will be different.
   Modula’s own data is never changed, a gallery is never imported twice, albums
   become gallery categories, and it works even with Modula deactivated.
 * **New: swap Modula embeds.** Pages using a Modula shortcode or block are listed
   and can be switched to the imported gallery. The page as it was is saved as a
   revision first; if that is not possible the page is not changed. Page-builder
   pages are listed for manual work and never edited.
 * **New: undo.** An imported gallery can be undone from the same screen. It is 
   moved to the trash rather than deleted, the Modula embeds that were swapped for
   it are restored byte for byte, and later edits to those pages are kept. Swapped
   embeds can also be put back on their own, keeping the galleries. A gallery still
   shown on a page — including inside a page builder — is left in place and the 
   page is named. A category is removed only if the import created it and it is 
   empty.
 * **New: open a gallery in place.** `[qaiyo_clean_gallery_all open="lightbox"]`
   opens a gallery’s photos in the lightbox when its card is clicked, without leaving
   the page. The image list is fetched on demand, shared links (`#qcg=…&img=…`) 
   open the same photo, and each card stays a normal link — it still works without
   JavaScript, in a new tab, and for a gallery the visitor has to unlock first. 
   An imported Modula album that worked this way is swapped for exactly this.
 * **Security: a gallery set to “Password protected” in WordPress is now actually
   protected.** The photos of a gallery are not part of the post content, so WordPress
   did not hide them: such a gallery was shown to everyone, on its own page and 
   wherever it was embedded. It now shows the WordPress password form until the 
   password has been entered. Editors of the gallery still see it directly.
 * **Security: the cover of a locked gallery.** In the all-galleries view a gallery
   without a featured image used its first photo as the card cover — also when the
   gallery was locked. A locked gallery now shows only the cover you chose yourself(
   the featured image), never one of the protected photos.
 * Improved: the lightbox is a proper dialog for keyboard and screen-reader users—
   it has a name, takes the focus when it opens, keeps Tab inside while it is open
   and returns the focus to where you were when it closes. The enlarged image carries
   the image’s own alternative text.
 * Improved: every place a gallery image is shown — tiles, the hero of the gallery
   page, the card cover and the lightbox — now goes through the same `qaiyo_clean_gallery_image_src`
   filter, which also receives the gallery ID. An add-on that replaces the served
   file (a watermark, for instance) can no longer be bypassed by one of them.
 * New: the `variation` shortcode attribute, the `qaiyo_clean_gallery_mosaic_spans`
   and `qaiyo_clean_gallery_lightbox_items` filters and the `qaiyo_clean_gallery_migrated_gallery`
   action. See HOOKS.md.
 * Improved: a gallery exported as a ZIP now carries its per-image Mosaic tile sizes,
   so they survive the move to another site.
 * Fixed: exporting reported success even when the ZIP could not be written (a full
   disk, a folder that is not writable). It now says so.
 * Fixed: a PHP warning in the gallery editor when another plugin stored the meta
   box order in an unexpected format.

#### 1.4.1

Security and reliability:

 * **An add-on can no longer put arbitrary markup on your page through the gallery.**
   When a Pro feature replaces a gallery with its own screen — the password form,
   a private delivery notice — that markup is now checked against a list of permitted
   tags and attributes instead of being trusted. A password form still works exactly
   as before; a script tag or an `onmouseover` handler does not survive the trip.
 * Uninstalling now clears the plugin’s settings on **every site of a network**,
   not only the one the network admin happened to be on.
 * **New: placeholder images while you wait for the photos.** Switch on “Placeholder
   images” in a gallery, choose how many and whether they are mixed, landscape, 
   portrait or square, and the gallery shows neutral sample tiles in its real layout—
   so you can design the page before the client sends anything. They are small image
   files shipped with the plugin: nothing is added to your Media Library and no 
   outside service is used. The moment the gallery has a real image, the placeholders
   disappear by themselves. The gallery list marks galleries that are still showing
   them.
 * **New: see which galleries people actually look at.** A private view counter 
   now runs on this site: each gallery shows its views in the gallery list (sortable),
   in the editor sidebar with a reset link, and as a total on the Overview page.
   A view is counted once per visitor session, when the gallery really comes into
   view — scrolling past the page footer does not count, reloading does not count
   twice.
 * Nothing leaves your site: no cookies, no IP addresses, no external service — 
   just a number stored with the gallery. Your own visits while logged in and known
   bots are left out, so the figures are not inflated while you design the page.
   Switch it off any time under Info & Help.
 * Improved: the Qaiyo summary card on the WordPress Dashboard now highlights your
   most viewed gallery once there are views, instead of only the largest one.

Under the hood:

 * The gallery editor screen was split up: its four boxes are now rendered from 
   template files, and the class that used to hold both the markup and the data 
   API keeps only the part other plugins call. No screen changed — the output is
   identical, character for character.

#### 1.4.0

 * **New: pick your layout from pictures, not from a dropdown.** The gallery editor
   now opens with a full-width Layout box above the images, where every layout is
   drawn as a small mock-up of what it actually does. Click one and only the settings
   that layout uses stay on screen — no more hunting for “Columns” on a layout that
   has none.
 * **Improved: Masonry finally behaves like Masonry.** Tiles are no longer forced
   to a shared height: every image keeps its own proportions and the columns pack
   around them, while the reading order still runs left to right.
 * **New: Showcase layout.** Images are grouped in threes — one large photo beside
   two stacked ones — and every second group is mirrored, so a set of product or
   portrait shots reads like a magazine spread instead of a grid.
 * New: **Row height** is now a setting instead of a code filter, for the Justified
   and Showcase layouts.
 * New: layouts are a documented, extensible registry (`qaiyo_clean_gallery_layouts`)—
   the editor picker, the block and the shortcode all read from the same list. See
   HOOKS.md.
 * Improved: the layout suggestion now also proposes Showcase for small mixed sets,
   and selects the suggested card for you.
 * **Fixed: the Overview page no longer shows a duplicate “Qaiyo ecosystem” panel.**
   The WordPress Dashboard already has a single, shared Qaiyo ecosystem widget (
   added by Qaiyo Admin Booster) that pulls a summary card from every active Qaiyo
   plugin. Clean Gallery’s own Overview page was additionally re-rendering that 
   same aggregated view of _other_ plugins — no other Qaiyo plugin does this on 
   its own page, and it made the same information appear twice. Clean Gallery still
   reports its own “Galleries” / “Media stats” card to the shared Dashboard widget
   as before; only the redundant duplicate panel is gone.

#### 1.3.0

 * **Improved: duplicate images are now recognised across an export and re-import.**
   Until now the importer could only spot a duplicate among images it had imported
   before, so bringing a gallery back onto the site it came from quietly created
   a second copy of every file. Exporting now fingerprints the source images too,
   and a stored fingerprint is re-checked against the actual file before it is trusted—
   so a picture that has since been edited is never mistaken for the original.
 * Improved: the gallery packaging engine (manifest, ZIP writing and reading, import)
   is now a documented, reusable API — see HOOKS.md. The export and import screens
   use it themselves, and add-ons can build on the same proven code instead of reimplementing
   it.
 * **New: image sources.** Where a gallery’s pictures come from is now a named, 
   extensible choice. The plugin ships the two it always had — a hand-picked list
   and a HappyFiles live link — and add-ons can register their own, which then appear
   in a source selector in the editor.
 * New extension points for add-ons: gallery visibility, served image URL, extra
   settings fields, extra manifest data, and cards on the Overview screen. All documented
   in HOOKS.md.
 * New: each gallery image now carries its attachment ID in the markup, so add-ons
   can attach behaviour to a specific picture.
 * New: a locked preview of the features available in Qaiyo Clean Gallery Pro appears
   on the Overview screen.
 * **Fixed: the Japanese translation never loaded.** WordPress calls the Japanese
   locale `ja`, but the plugin looked for `ja_JP` — so Japanese sites silently fell
   back to English. Japanese now works, and `ja_JP` is accepted as well for anyone
   who set it by hand.
 * **All eleven bundled languages are now complete.** Hungarian, German, French,
   Spanish, Italian, Portuguese, Russian, Japanese, Turkish and Polish were previously
   only about 40% translated; every string in the plugin is now covered in all of
   them.
 * Fixed: two admin screens still showed an older form of the plugin author’s name.

#### 1.2.0

 * **New: Qaiyo ecosystem panel with a “Media statistics” card.** The Overview screen
   now shows a summary card per Qaiyo plugin. Clean Gallery reports its own card
   with the number of galleries, images and your largest gallery.
 * **Combined card:** when **Qaiyo Social Video Embed** is also active, the two 
   merge into a single **Media statistics** card that adds the number of video embeds
   found in your published content — instead of two separate cards.
 * Plugins from the family that are not installed appear as ghost cards describing
   what they would add, with a link to their WordPress.org page. Nothing is installed
   or fetched automatically.
 * The card is also offered to sibling plugins (for example the Admin Booster dashboard
   widget) through their `*_ecosystem_widgets` filters, so the summary can appear
   wherever the family collects it. Statistics are cached for an hour and refreshed
   whenever a gallery changes.

#### 1.1.1

 * **Fixed: images could not be added to a gallery from the Media Library.** Selecting
   images and pressing “Add to Gallery” silently did nothing — the picker read the
   attachment URL in a way that threw a JavaScript error, aborting the whole insert.
   Selected images are now added reliably.
 * Improved: the image picker now opens on the **Media Library** tab instead of “
   Upload files”, so existing images are visible straight away.

#### 1.1.0

Two new tools, both free:

 * **Duplicate image finder** (_Clean Gallery  Duplicates_) — scans the whole media
   library and groups byte-identical copies of the same picture, even when their
   filenames differ. Each file is fingerprinted with a content hash (the same technique
   the gallery importer uses), the scan runs in batches so large libraries never
   time out, and every copy is listed with the galleries using it and how much disk
   space the redundant files waste. Nothing is deleted automatically.
 * **Smart layout suggestion** — a “Suggest a layout” button in the gallery editor
   analyses the aspect ratios of the selected images and picks the best layout for
   them, with a short explanation of why. It also works before the gallery is saved.
 * Improved: the “Qaiyo Plugins” separator in the admin sidebar now uses the refreshed
   chip styling shared by the Qaiyo plugin family.

#### 1.0.0

First public release. Highlights:

 * Six gallery layouts: Grid, Masonry, Standard (uniform squares), Justified (equal-
   height rows), Bento (asymmetric grid) and Showcase.
 * Built-in accessible lightbox: keyboard and touch-swipe navigation, image counter
   and captions, plus deep linking (an exact image can be linked/bookmarked), social
   share buttons (Facebook, X, Pinterest, copy link) and optional right-click protection.
 * One-click ZIP Export / Import: move an entire gallery — settings, categories 
   and the original image files — to another site in a single self-contained ZIP.
   The source site does not need to stay online, images transfer byte-for-byte, 
   duplicates are detected by content hash, and imports arrive as drafts.
 * HappyFiles live-link: point a gallery at a HappyFiles folder and it stays in 
   sync automatically; on export/import the folder is recreated and the link preserved.
 * All-galleries view (`[qaiyo_clean_gallery_all]`): category filter, sort by date/
   title, load-more pagination and a 3/4 column switcher with customizable icon 
   colors.
 * Overview dashboard: a default landing page with a personalized greeting, at-a-
   glance stats (galleries, published, drafts, total images, categories, HappyFiles
   status) and quick actions.
 * Performance & SEO: zero JavaScript dependencies on the frontend, native lazy 
   loading, automatic image compression on upload (Imagick/GD), and schema.org ImageGallery/
   ImageObject / ItemList structured data.
 * Editor & embedding: Custom Post Type with a drag-and-drop image manager, a copy-
   ready shortcode box, a native Gutenberg block and a theme-overridable single-
   gallery template.
 * Developer filters: qaiyo_clean_gallery_justified_row_height, qaiyo_clean_gallery_happyfiles_taxonomy,
   qaiyo_clean_gallery_hf_orderby, qaiyo_clean_gallery_hf_order, qaiyo_clean_gallery_compress_*
   and qaiyo_clean_gallery_cpt_slug / qaiyo_clean_gallery_tax_slug.
 * Ships with 11 languages: English, Hungarian, German, French, Spanish, Italian,
   Portuguese, Russian, Japanese, Turkish and Polish.

## Мета

 *  Нуска **1.5.0**
 *  Акыркы жаңыртуу **2 күн мурун**
 *  Активдүү орнотуулар **Fewer than 10**
 *  WordPress нускасы ** 5.8 же андан жогору **
 *  Tested up to **7.1.3**
 *  PHP нускасы ** 7.4 же андан жогору **
 *  Тил
 * [English (US)](https://wordpress.org/plugins/qaiyo-clean-gallery/)
 * Тег:
 * [gallery](https://ky.wordpress.org/plugins/tags/gallery/)[happyfiles](https://ky.wordpress.org/plugins/tags/happyfiles/)
   [images](https://ky.wordpress.org/plugins/tags/images/)[lightbox](https://ky.wordpress.org/plugins/tags/lightbox/)
   [masonry](https://ky.wordpress.org/plugins/tags/masonry/)
 *  [Advanced View](https://ky.wordpress.org/plugins/qaiyo-clean-gallery/advanced/)

## Рейтинг

Азырынча эч кандай сын-пикир жок.

[Your review](https://wordpress.org/support/plugin/qaiyo-clean-gallery/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/qaiyo-clean-gallery/reviews/)

## Мүчөлөрү

 *   [ qaiyo ](https://profiles.wordpress.org/qaiyo/)

## Колдоо

Комментарийлер барбы? Жардам керекпи?

 [Колдоо форумун көрүү](https://wordpress.org/support/plugin/qaiyo-clean-gallery/)