{"id":259965,"date":"2026-01-26T23:11:29","date_gmt":"2026-01-26T23:11:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/steves-gallery-helper\/"},"modified":"2026-06-23T15:14:58","modified_gmt":"2026-06-23T15:14:58","slug":"steves-gallery-helper","status":"publish","type":"plugin","link":"https:\/\/hu.wordpress.org\/plugins\/steves-gallery-helper\/","author":23385172,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.7.4","stable_tag":"1.7.4","tested":"6.8.5","requires":"5.6","requires_php":"8.2","requires_plugins":null,"header_name":"Steve's Gallery Helper","header_author":"Steve Gibbs","header_description":"Adds lightbox add-on to the default WordPress gallery block (no jQuery).","assets_banners_color":"66a4d2","last_updated":"2026-06-23 15:14:58","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/stevegibbs.info","header_plugin_uri":"https:\/\/stevegibbs.info\/wordpress-plugins\/gallery-helper","header_author_uri":"https:\/\/stevegibbs.info","rating":0,"author_block_rating":0,"active_installs":0,"downloads":384,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.7.2":{"tag":"1.7.2","author":"stevegibbs","date":"2026-02-19 19:13:47"},"1.7.3":{"tag":"1.7.3","author":"stevegibbs","date":"2026-02-20 17:32:55"},"1.7.4":{"tag":"1.7.4","author":"stevegibbs","date":"2026-06-23 15:14:58"}},"upgrade_notice":{"1.7.4":"<p>Adds a new Carousel display mode with horizontal\/vertical orientation, auto-advance, and lightbox integration. See the Settings panel in the Gallery block inspector.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3448167,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-154x150.png":{"filename":"banner-154x150.png","revision":3448167,"resolution":"154x150","location":"assets","locale":"","width":154,"height":150},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3448167,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.7.2","1.7.3","1.7.4"],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3449911,"resolution":"1","location":"assets","locale":"","width":1314,"height":948},"Screenshot-2.png":{"filename":"Screenshot-2.png","revision":3449911,"resolution":"2","location":"assets","locale":"","width":280,"height":165},"Screenshot-3.png":{"filename":"Screenshot-3.png","revision":3449911,"resolution":"3","location":"assets","locale":"","width":1318,"height":949}},"screenshots":{"1":"Gallery block with the Gallery Helper Settings panel open in the editor sidebar.","2":"Lightbox overlay showing an image with prev\/next\/close controls.","3":"Horizontal carousel with prev\/next navigation buttons.","4":"Vertical carousel layout."}},"plugin_section":[],"plugin_tags":[786,210,237,4035,208],"plugin_category":[50],"plugin_contributors":[254707],"plugin_business_model":[],"class_list":["post-259965","plugin","type-plugin","status-publish","hentry","plugin_tags-carousel","plugin_tags-gallery","plugin_tags-lightbox","plugin_tags-lightweight","plugin_tags-slideshow","plugin_category-media","plugin_contributors-stevegibbs","plugin_committers-stevegibbs"],"banners":{"banner":"https:\/\/ps.w.org\/steves-gallery-helper\/assets\/banner-772x250.png?rev=3448167","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/steves-gallery-helper\/assets\/icon-128x128.png?rev=3448167","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/steves-gallery-helper\/assets\/Screenshot-1.png?rev=3449911","caption":"Gallery block with the Gallery Helper Settings panel open in the editor sidebar."},{"src":"https:\/\/ps.w.org\/steves-gallery-helper\/assets\/Screenshot-2.png?rev=3449911","caption":"Lightbox overlay showing an image with prev\/next\/close controls."},{"src":"https:\/\/ps.w.org\/steves-gallery-helper\/assets\/Screenshot-3.png?rev=3449911","caption":"Horizontal carousel with prev\/next navigation buttons."}],"raw_content":"<!--section=description-->\n<p>Gallery Helper extends the native WordPress Gallery block (<code>core\/gallery<\/code>) with two premium display modes \u2014 <strong>Lightbox<\/strong> and <strong>Carousel<\/strong> \u2014 without adding any jQuery dependency.<\/p>\n\n<h4>Lightbox Mode<\/h4>\n\n<p>Click any gallery image to open it in a full-screen overlay with:\n- <strong>Previous \/ Next navigation<\/strong> via on-screen buttons, keyboard arrow keys, touch swipe, or mouse drag\n- <strong>Automatic slideshow<\/strong> mode that advances images every 3 seconds (pauses on click)\n- <strong>Fade transitions<\/strong> on swipe gestures for a native feel\n- <strong>Accessibility<\/strong>: ARIA roles, focus trapping, keyboard Escape to close, screen reader support\n- <strong>Responsive<\/strong>: navigation buttons hide on mobile (swipe instead)<\/p>\n\n<h4>Carousel Mode<\/h4>\n\n<p>Display your gallery images as a full-height, single-image strip with:\n- <strong>Horizontal<\/strong> orientation (default) or <strong>Vertical<\/strong> orientation\n- <strong>Height-justified, no-cropping<\/strong> display \u2014 each image fills the container height while preserving its natural aspect ratio via <code>object-fit: contain<\/code>\n- <strong>Prev \/ Next<\/strong> navigation via on-screen buttons, keyboard arrows, mouse drag, or touch swipe\n- <strong>Auto-advance<\/strong> mode with configurable interval (pauses on hover\/focus, resumes on leave)\n- <strong>Reacts to window resize<\/strong> \u2014 re-centers the current slide\n- <strong>Lightbox integration<\/strong> \u2014 when both Carousel and Lightbox are enabled, clicking a carousel image opens the lightbox with full navigation<\/p>\n\n<h4>Key Design Principles<\/h4>\n\n<ul>\n<li><strong>No jQuery<\/strong> \u2014 uses vanilla JavaScript throughout<\/li>\n<li><strong>Lightweight<\/strong> \u2014 CSS and JS only enqueue when a gallery block uses the helper<\/li>\n<li><strong>Unobtrusive<\/strong> \u2014 leaves the editor experience untouched; adds a single \"Gallery Helper Settings\" panel to the block inspector<\/li>\n<li><strong>Dynamic content compatible<\/strong> \u2014 uses MutationObserver to support galleries loaded via AJAX, accordions, tabs, or other dynamic UIs<\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<h3>Lightbox<\/h3>\n\n<ol>\n<li>Add a Gallery block to your content.<\/li>\n<li>In the block settings sidebar, locate the <strong>Gallery Helper Settings<\/strong> panel.<\/li>\n<li>Check <strong>Enable Lightbox<\/strong>.<\/li>\n<li>Optional: set <strong>Slideshow Mode<\/strong> to <strong>Automatic<\/strong> for auto-advancing images.<\/li>\n<li>On the front end, click any gallery image to open the lightbox.<\/li>\n<\/ol>\n\n<h3>Carousel<\/h3>\n\n<ol>\n<li>Add a Gallery block to your content.<\/li>\n<li>In the block settings sidebar, locate the <strong>Gallery Helper Settings<\/strong> panel.<\/li>\n<li>Set <strong>Display Mode<\/strong> to <strong>Carousel<\/strong>.<\/li>\n<li>Choose <strong>Direction<\/strong>: Horizontal (side-to-side) or Vertical (top-to-bottom).<\/li>\n<li>Optional: enable <strong>Auto-advance<\/strong> and set the <strong>Interval (ms)<\/strong> (default 3000).<\/li>\n<li>On the front end, the gallery renders as a full-height image strip with prev\/next buttons.<\/li>\n<\/ol>\n\n<h3>Dynamic Galleries<\/h3>\n\n<p>The plugin automatically handles galleries loaded dynamically (e.g. inside accordion blocks, tabs, AJAX-loaded content). No extra configuration required.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>steves-gallery-helper<\/code> directory to <code>\/wp-content\/plugins\/<\/code>, or upload the zip via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Add a <strong>Gallery<\/strong> block to any post, page, or custom post type.<\/li>\n<li>Open the block settings sidebar and expand <strong>Gallery Helper Settings<\/strong>.<\/li>\n<li>Toggle <strong>Enable Lightbox<\/strong> and\/or set <strong>Display Mode<\/strong> to <strong>Carousel<\/strong>.<\/li>\n<li>Publish and enjoy.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20jquery%3F\"><h3>Does this plugin require jQuery?<\/h3><\/dt>\n<dd><p>No. All front-end JavaScript is written in vanilla ES5\/ES6 \u2014 no jQuery dependency.<\/p><\/dd>\n<dt id=\"does%20the%20carousel%20work%20with%20the%20lightbox%3F\"><h3>Does the carousel work with the lightbox?<\/h3><\/dt>\n<dd><p>Yes. When both Carousel mode and Lightbox are enabled, clicking any carousel image opens it in the lightbox overlay with full prev\/next navigation.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20dynamic%20galleries%20%28e.g.%20in%20accordions%20or%20tabs%29%3F\"><h3>Does it work with dynamic galleries (e.g. in accordions or tabs)?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses a MutationObserver to detect galleries added to the DOM after the initial page load.<\/p><\/dd>\n<dt id=\"can%20i%20sell%20this%20plugin%3F\"><h3>Can I sell this plugin?<\/h3><\/dt>\n<dd><p>This plugin is licensed under GPLv2. You are free to use, modify, and distribute it in accordance with the license terms.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>New: Carousel display mode \u2014 display gallery images as a horizontal or vertical image strip with prev\/next navigation, swipe support, keyboard arrows, and optional auto-advance with configurable interval.<\/li>\n<li>New: \"Display Mode\" setting (Grid \/ Carousel) in the Gallery Helper Settings panel.<\/li>\n<li>New: \"Direction\" setting (Horizontal \/ Vertical) for carousel orientation.<\/li>\n<li>New: \"Auto-advance\" toggle and interval control for the carousel.<\/li>\n<li>New: Carousel integrates with the existing lightbox \u2014 enable both for click-to-lightbox from carousel images.<\/li>\n<li>New: CSS for carousel layout \u2014 height-justified, no-cropping image display with responsive breakpoints.<\/li>\n<li>New: Mouse drag and touch swipe support for carousel navigation.<\/li>\n<li>Fix: Carousel auto-advance pauses on hover\/focus and resumes on mouse leave \/ focus out.<\/li>\n<li>Fix: Carousel re-centers current slide on window resize.<\/li>\n<li>Dev: Replaced function declarations with function expressions inside setupCarousel to avoid hoisting issues.<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Fixed duplicate event listeners that could cause multiple lightboxes to open.<\/li>\n<li>Ensured compatibility with galleries inside nested blocks (e.g., Accordions, Details).<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Fixed enqueue_frontend_assets so plugin files only load when the gallery helper is in use.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Added smooth fade transitions for swipe gestures (touch and mouse drag).<\/li>\n<li>Added grab cursor for desktop mouse swipe indication.<\/li>\n<li>Improved swipe handling with unified touch\/mouse event system.<\/li>\n<li>Maintained instant navigation for buttons and keyboard controls.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Bug fixes and improvements.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added slideshow mode support.<\/li>\n<li>Improved accessibility features.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Initial release with lightbox functionality.<\/li>\n<\/ul>","raw_excerpt":"A lightweight, no-jQuery lightbox and image carousel add-on for WordPress&#039;s core gallery block.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/259965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=259965"}],"author":[{"embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/stevegibbs"}],"wp:attachment":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=259965"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=259965"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=259965"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=259965"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=259965"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=259965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}