{"id":375966,"date":"2026-09-27T11:33:47","date_gmt":"2026-09-27T11:33:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sonido-gallery\/"},"modified":"2026-09-27T11:37:35","modified_gmt":"2026-09-27T11:37:35","slug":"sonido-gallery","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/sonido-gallery\/","author":17532892,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Sonido Gallery","header_author":"Sonido","header_description":"Modern, responsive image and video gallery for WordPress with PhotoSwipe lightbox and configurable thumbnails.","assets_banners_color":"484351","last_updated":"2026-09-27 11:37:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpforge.site\/sonido-gallery","header_author_uri":"https:\/\/wpforge.site","rating":0,"author_block_rating":0,"active_installs":0,"downloads":61,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"mrtuxit","date":"2026-09-27 11:37:35","revision":3715413}},"upgrade_notice":{"1.1.0":"<p>New: layout registry with shortcode and per-gallery layout selection, developer hooks for custom layouts and item types. No breaking changes: galleries built with 1.0.x render exactly as before.<\/p>","1.0.1":"<p>Performance, security and accessibility improvements. Galleries built with 1.0.0 keep working unchanged; note that draft\/private galleries are no longer visible to public visitors.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3715404,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3715404,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3715404,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3715404,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3715404,"resolution":"1","location":"assets","locale":"","width":772,"height":304},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3715404,"resolution":"2","location":"assets","locale":"","width":772,"height":434},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3715404,"resolution":"3","location":"assets","locale":"","width":772,"height":434}},"screenshots":{"1":"Gallery meta box with sortable image list and caption editor","2":"Frontend grid with lightbox open","3":"Settings page (Layout, Captions, Visuals)"}},"plugin_section":[],"plugin_tags":[210,133,237,13896,222],"plugin_category":[50],"plugin_contributors":[282968],"plugin_business_model":[],"class_list":["post-375966","plugin","type-plugin","status-publish","hentry","plugin_tags-gallery","plugin_tags-image","plugin_tags-lightbox","plugin_tags-photoswipe","plugin_tags-video","plugin_category-media","plugin_contributors-mrtuxit","plugin_committers-mrtuxit"],"banners":{"banner":"https:\/\/ps.w.org\/sonido-gallery\/assets\/banner-772x250.png?rev=3715404","banner_2x":"https:\/\/ps.w.org\/sonido-gallery\/assets\/banner-1544x500.png?rev=3715404","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sonido-gallery\/assets\/icon-128x128.png?rev=3715404","icon_2x":"https:\/\/ps.w.org\/sonido-gallery\/assets\/icon-256x256.png?rev=3715404","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/sonido-gallery\/assets\/screenshot-1.png?rev=3715404","caption":"Gallery meta box with sortable image list and caption editor"},{"src":"https:\/\/ps.w.org\/sonido-gallery\/assets\/screenshot-2.png?rev=3715404","caption":"Frontend grid with lightbox open"},{"src":"https:\/\/ps.w.org\/sonido-gallery\/assets\/screenshot-3.png?rev=3715404","caption":"Settings page (Layout, Captions, Visuals)"}],"raw_content":"<!--section=description-->\n<p>Sonido Gallery lets you build beautiful, responsive image and video galleries entirely from the WordPress admin. No builders, no bloat: images stay in your Media Library, galleries render with a lightweight CSS grid and open in a PhotoSwipe lightbox with zoom, swipe and keyboard navigation.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Custom post type \"Galleries\" for managing multiple galleries<\/li>\n<li>Pick images from the Media Library, or add videos<\/li>\n<li>Supports YouTube and self-hosted video files, with custom cover images<\/li>\n<li>Three thumbnail sizes: thumbnail \/ medium \/ large<\/li>\n<li>HTML-formatted captions (bold, italic, links, line breaks)<\/li>\n<li>PhotoSwipe v5 lightbox with touch, zoom, and keyboard navigation<\/li>\n<li>Responsive CSS grid with per-instance column override<\/li>\n<li>Developer-friendly layout registry: register new layouts with one filter<\/li>\n<li>Translation ready (text domain <code>sonido-gallery<\/code>)<\/li>\n<\/ul>\n\n<h4>Take it further with Sonido Gallery Pro<\/h4>\n\n<p>Pro adds layouts and video capabilities that don't fit a plugin meant to stay lightweight:<\/p>\n\n<ul>\n<li><strong>Masonry layout<\/strong> \u2014 CSS columns that flow vertically, perfect for mixed-ratio photography<\/li>\n<li><strong>Justified layout<\/strong> \u2014 Google-Photos-style rows with a shared height<\/li>\n<li><strong>Carousel layout<\/strong> \u2014 horizontal scroll-snap slider with prev\/next buttons<\/li>\n<li><strong>Vimeo videos<\/strong> \u2014 add Vimeo URLs to any gallery, with cached thumbnails and in-modal playback<\/li>\n<li><strong>Per-gallery layout selector<\/strong> \u2014 choose the layout straight from the gallery editor<\/li>\n<li><strong>Theme-overridable templates<\/strong> \u2014 every layout and the item markup can be replaced from your theme<\/li>\n<\/ul>\n\n<p>Pro is a separate paid plugin, licensed per site, with automatic updates and priority support. All layouts keep working with the same [sonido_gallery] shortcode you already use \u2014 switching is as simple as changing one attribute. <a href=\"https:\/\/wpforge.site\/sonido-gallery-pro\">See Pro \u2192<\/a><\/p>\n\n<h4>Shortcode<\/h4>\n\n<p>Embed a gallery with <code>[sonido_gallery id=\"123\"]<\/code>.<\/p>\n\n<p>Attributes:<\/p>\n\n<ul>\n<li><code>id<\/code> (required) - gallery post ID, found in the URL of each Gallery edit page<\/li>\n<li><code>size<\/code> - <code>thumbnail<\/code> | <code>medium<\/code> | <code>large<\/code> (overrides global default)<\/li>\n<li><code>columns<\/code> - 1 to 6 (overrides global default)<\/li>\n<li><code>layout<\/code> - layout slug registered in the registry (<code>grid<\/code>, or <code>masonry<\/code> \/ <code>justified<\/code> \/ <code>carousel<\/code> with <a href=\"https:\/\/wpforge.site\/sonido-gallery-pro\">Sonido Gallery Pro<\/a>)<\/li>\n<\/ul>\n\n<p>For convenience, the plugin shows the shortcode on the settings page together with a copy\/paste example.<\/p>\n\n<h4>For developers<\/h4>\n\n<p>The plugin exposes a small, stable extension API:<\/p>\n\n<ul>\n<li><code>sonido_gallery_layout<\/code> \u2014 resolve the layout slug per render<\/li>\n<li><code>sonido_gallery_shortcode_atts<\/code> \u2014 modify shortcode attributes<\/li>\n<li><code>sonido_gallery_item_html<\/code> \/ <code>sonido_gallery_caption_html<\/code> \u2014 replace item and caption markup<\/li>\n<li><code>sonido_gallery_allowed_types<\/code> + <code>sonido_gallery_normalize_custom_item<\/code> \u2014 add custom item types\n\n<ul>\n<li>Theme overrides: <code>&lt;theme&gt;\/sonido-gallery\/layout-&lt;slug&gt;.php<\/code> and <code>item.php<\/code><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>Credits<\/h4>\n\n<p>The bundled lightbox is <a href=\"https:\/\/photoswipe.com\">PhotoSwipe v5<\/a> by Dmytro Semenov, released under the MIT License (license text included in <code>public\/js\/vendor\/photoswipe.LICENSE.txt<\/code>).<\/p>\n\n<h3>Sonido Gallery Pro<\/h3>\n\n<p>Upgrade when you need more: <a href=\"https:\/\/wpforge.site\/sonido-gallery-pro\">Sonido Gallery Pro<\/a> adds Masonry, Justified and Carousel layouts, Vimeo video support and a per-gallery layout selector. Distributed separately with automatic updates and priority support.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin shows YouTube video items inside galleries, which relies on two external services operated by Google LLC:<\/p>\n\n<ol>\n<li>YouTube thumbnails. When a gallery contains a YouTube video item, the visitor's browser loads the video's preview image directly from i.ytimg.com so the gallery can display a thumbnail without storing a copy in your site.<\/li>\n<li>YouTube embedded player. When a visitor opens a YouTube item, the plugin loads YouTube's embedded iframe player from youtube.com to play the video inside the lightbox.<\/li>\n<\/ol>\n\n<p>What data is sent: the YouTube video ID (part of the URL you add to the gallery) is included in the requests the visitor's browser makes to i.ytimg.com and youtube.com. The requests happen only when a visitor loads a page that renders a gallery containing that YouTube item. No plugin data is sent to any other third-party service, and no server-to-server requests are made.<\/p>\n\n<p>The plugin does not connect to these services on your server; only the visitor's browser makes those requests. YouTube may set its own cookies per its policies.<\/p>\n\n<p>Service provided by Google LLC \u2014 YouTube Terms of Service: https:\/\/www.youtube.com\/t\/terms \u2014 Google Privacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>sonido-gallery<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin in <strong>Plugins<\/strong> in WordPress.<\/li>\n<li>Go to <strong>Galleries -&gt; Add New<\/strong>, give it a title, then click \"Add Images\" (or add a video).<\/li>\n<li>Copy the <code>[sonido_gallery id=\"123\"]<\/code> shortcode from the settings page and paste it into any post or page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20embed%20multiple%20galleries%20on%20the%20same%20page%3F\"><h3>Can I embed multiple galleries on the same page?<\/h3><\/dt>\n<dd><p>Yes. Each <code>[sonido_gallery id=\"...\"]<\/code> uses its own ID and has its own independent set of images.<\/p><\/dd>\n<dt id=\"can%20i%20add%20videos%20to%20my%20gallery%3F\"><h3>Can I add videos to my gallery?<\/h3><\/dt>\n<dd><p>Yes. Add YouTube URLs or upload video files from the Media Library; each video can have a custom cover image. Clicking a video thumbnail opens a dedicated player modal.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20different%20grid%20style%3F\"><h3>Can I use a different grid style?<\/h3><\/dt>\n<dd><p>The free version ships a responsive CSS grid. Masonry, Justified and Carousel layouts are available in <a href=\"https:\/\/wpforge.site\/sonido-gallery-pro\">Sonido Gallery Pro<\/a>, together with a per-gallery layout selector.<\/p><\/dd>\n<dt id=\"are%20the%20images%20saved%20on%20my%20server%3F\"><h3>Are the images saved on my server?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses the regular WordPress Media Library; nothing is sent to third-party services. YouTube embeds load from YouTube only when a video is actually played.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20without%20javascript%3F\"><h3>Does the plugin work without JavaScript?<\/h3><\/dt>\n<dd><p>Yes. If JavaScript is disabled, clicking a thumbnail opens the full-size image in the browser. If the lightbox toggle is off in the settings, the lightbox script is not loaded.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>Yes. <a href=\"https:\/\/wpforge.site\/sonido-gallery-pro\">Sonido Gallery Pro<\/a> adds Masonry, Justified and Carousel layouts, Vimeo support and a per-gallery layout selector. The free version is complete on its own: Pro is for when you need more presentation options or premium support.<\/p><\/dd>\n<dt id=\"how%20do%20i%20update%20photoswipe%20to%20a%20newer%20version%3F\"><h3>How do I update PhotoSwipe to a newer version?<\/h3><\/dt>\n<dd><p>The bundled PhotoSwipe version is updated by the plugin author in each release; for manual updates replace the three files in <code>public\/js\/vendor\/<\/code> (keeping the MIT license text).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: layout registry with theme-overridable templates and <code>layout<\/code> shortcode attribute.<\/li>\n<li>New: per-gallery layout selector in the gallery meta box.<\/li>\n<li>New: developer hooks \u2014 <code>sonido_gallery_layout<\/code>, <code>sonido_gallery_shortcode_atts<\/code>, <code>sonido_gallery_item_html<\/code>, <code>sonido_gallery_caption_html<\/code>, <code>sonido_gallery_item_template_path<\/code>, <code>sonido_gallery_template_path<\/code>, <code>sonido_gallery_after_render<\/code>, <code>sonido_gallery_loaded<\/code>.<\/li>\n<li>New: filterable item types for add-ons (<code>sonido_gallery_allowed_types<\/code>, <code>sonido_gallery_normalize_custom_item<\/code>, <code>sonido_gallery_video_item_props<\/code>), with front-end and admin JS hooks.<\/li>\n<li>Refactor: item markup extracted into a shared, theme-overridable template \u2014 output unchanged.<\/li>\n<li>New: item captions now appear inside the PhotoSwipe lightbox.<\/li>\n<li>Fix: built-in layout label now translates lazily, avoiding a just-in-time textdomain notice on WordPress 6.7+ (new <code>Sonido_Gallery_Layouts::get_label()<\/code> helper).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Performance: plugin CSS\/JS (including PhotoSwipe) are now loaded only on pages that render a [sonido_gallery] shortcode.<\/li>\n<li>Security: unpublished (draft\/private) galleries are no longer rendered to public visitors; editors still see previews.<\/li>\n<li>Editors now see an inline notice instead of silent empty output when a shortcode ID is invalid or a gallery is empty.<\/li>\n<li>Accessibility: video modal now manages focus (trap on open, restore on close) and uses translatable labels.<\/li>\n<li>Admin: cover buttons use proper translatable strings; settings page now shows save confirmation notices.<\/li>\n<li>Added uninstall.php to clean the plugin settings without touching gallery content.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Modern, responsive image and video gallery for WordPress with PhotoSwipe lightbox and configurable thumbnails.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=375966"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mrtuxit"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375966"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375966"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375966"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375966"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375966"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}