{"id":192211,"date":"2024-05-12T10:47:37","date_gmt":"2024-05-12T10:47:37","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/embed-google-photos\/"},"modified":"2026-07-30T07:26:58","modified_gmt":"2026-07-30T07:26:58","slug":"embed-google-photos","status":"publish","type":"plugin","link":"https:\/\/me.wordpress.org\/plugins\/embed-google-photos\/","author":22028296,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.0.2","requires":"6.5","requires_php":"7.1","requires_plugins":null,"header_name":"Gallery for Google Photos \u2013 share your albums right on your site","header_author":"bPlugins","header_description":"Embed stunning Google Photos galleries directly into your WordPress site with the Google Photos Block plugin.","assets_banners_color":"c4c4d5","last_updated":"2026-07-30 07:26:58","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.buymeacoffee.com\/abuhayat","header_plugin_uri":"https:\/\/bplugins.com\/plugins\/gallery-for-google-photos\/","header_author_uri":"http:\/\/bplugins.com","rating":2.7,"author_block_rating":4.1846153846154,"active_installs":1000,"downloads":11526,"num_ratings":6,"support_threads":0,"support_threads_resolved":0,"author_block_count":63,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"alamincmt","date":"2024-05-17 16:04:03"},"1.0.1":{"tag":"1.0.1","author":"alamincmt","date":"2024-07-15 11:58:38"},"1.0.2":{"tag":"1.0.2","author":"btechnologies","date":"2024-09-10 18:00:16"},"1.0.3":{"tag":"1.0.3","author":"btechnologies","date":"2024-10-06 13:54:49"},"1.0.4":{"tag":"1.0.4","author":"btechnologies","date":"2024-11-14 03:38:05"},"1.0.5":{"tag":"1.0.5","author":"btechnologies","date":"2024-11-21 06:14:15"},"1.0.6":{"tag":"1.0.6","author":"btechnologies","date":"2024-11-27 09:09:40"},"1.0.7":{"tag":"1.0.7","author":"btechnologies","date":"2024-12-08 08:32:39"},"1.0.8":{"tag":"1.0.8","author":"btechnologies","date":"2025-09-03 10:42:32"},"1.0.9":{"tag":"1.0.9","author":"btechnologies","date":"2026-07-11 15:03:25"},"1.2.1":{"tag":"1.2.1","author":"btechnologies","date":"2026-07-14 09:09:45"},"1.2.2":{"tag":"1.2.2","author":"btechnologies","date":"2026-07-16 06:40:12"},"1.3.0":{"tag":"1.3.0","author":"btechnologies","date":"2026-07-30 07:26:58"}},"upgrade_notice":{"1.3.0 - 18 July, 2026":"<ul>\n<li>Adds live search with voice input and year filters, visual filter presets, focal-point cropping, Ken Burns motion, the Memories layout, lightbox sharing and downloads, and JSON import\/export. Also includes a security hardening pass (per-image link sanitization and SSRF-hardened album fetching) and uninstall cleanup for stored credentials.<\/li>\n<\/ul>","1.2.2 - 16 July, 2026":"<ul>\n<li>Minor bug fix.<\/li>\n<\/ul>","1.2.1 - 14 July, 2026":"<p>Important: Google shut down the old Google Photos API this plugin used, so galleries built the old way may no longer show your images. This version adds Google&#039;s new Photos Picker system \u2014 after updating, open the block, reconnect your Google account, and re-select your photos (they are now saved to your own Media Library and keep working). Also a recommended security fix (stored XSS + write-only credentials).<\/p>","1.0.9 - 28 Dec, 2024":"<ul>\n<li>Frontend useAjax use.<\/li>\n<\/ul>","1.0.8 - 12 Dec, 2024":"<ul>\n<li>Extra code remove.<\/li>\n<\/ul>","1.0.7 - 8 Dec, 2024":"<ul>\n<li>Some issues problem.<\/li>\n<\/ul>","1.0.6 - 27 Nov, 2024":"<ul>\n<li>No publicly documented resource for your compressed content<\/li>\n<li>Undocumented use of a 3rd Party \/ external service<\/li>\n<\/ul>","1.0.5 - 21 Nov,24":"<ul>\n<li>Trademark issues solved<\/li>\n<\/ul>","1.0.4 - 9 Oct, 2024":"<ul>\n<li>Solved the problem where album list images were not found.<\/li>\n<\/ul>","1.0.3 - 12 sept, 2024":"<ul>\n<li>Fixed the popup image resolution.<\/li>\n<\/ul>","1.0.2 - 16 July, 2024":"<ul>\n<li>Load more button update.<\/li>\n<\/ul>","1.0.1 - 18 May,2024":"<ul>\n<li>Authorization issues fixed.<\/li>\n<\/ul>","1.0.0":"<ul>\n<li>Initial Release<\/li>\n<\/ul>"},"ratings":{"1":3,"2":0,"3":1,"4":0,"5":2},"assets_icons":{"icon-128x128-old.png":{"filename":"icon-128x128-old.png","revision":3623274,"resolution":"128x128","location":"assets","locale":"old","width":512,"height":512},"icon-128x128.png":{"filename":"icon-128x128.png","revision":3623274,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3623274,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3623274,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3623274,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3623274,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"bpgpb\/google-photos":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"bpgpb\/google-photos","title":"Embed Google Photos","description":"Embed stunning Google Photos galleries directly into your WordPress site with the Google Photos Block plugin.","category":"widgets","version":"1.3.0","keywords":["photos","gallery","block"],"textdomain":"embed-google-photos","attributes":{"selectedPhotos":{"type":"array","default":[]},"align":{"type":"string","default":""},"cId":{"type":"string","default":""},"sessionId":{"type":"string","default":""},"photosType":{"type":"string","default":""},"favorite":{"type":"string","default":"none"},"album":{"type":"object","default":{"title":"Album List","isTitle":true,"photosList":true,"albumList":false}},"layoutShow":{"type":"string","default":"photos"},"albumList":{"type":"array","default":[]},"albumId":{"type":"string","default":""},"mediaType":{"type":"string","default":"all_media"},"layout":{"type":"string","default":"grid"},"hoverEffect":{"type":"string","default":"none"},"imageFilter":{"type":"string","default":"none"},"imageFilterHover":{"type":"boolean","default":false},"kenBurns":{"type":"boolean","default":false},"kenBurnsSpeed":{"type":"number","default":12},"metaOverlay":{"type":"boolean","default":false},"showSort":{"type":"boolean","default":false},"previewLimit":{"type":"number","default":0},"showCountBadge":{"type":"boolean","default":false},"deepLink":{"type":"boolean","default":false},"lightboxShare":{"type":"boolean","default":false},"sortColors":{"type":"object","default":{"color":"#3c4043","bg":"#ffffff"}},"sortBorderColor":{"type":"string","default":"#e0e0e0"},"sortTypo":{"type":"object","default":{"fontSize":{"desktop":13,"tablet":13,"mobile":13},"fontFamily":"","fontWeight":400,"lineHeight":"140%"}},"countColors":{"type":"object","default":{"color":"#3c4043","bg":"#f1f3f4"}},"countTypo":{"type":"object","default":{"fontSize":{"desktop":13,"tablet":13,"mobile":13},"fontFamily":"","fontWeight":600,"lineHeight":"140%"}},"hover":{"type":"object","default":{"zoom":8,"overlayColor":"rgba(0,0,0,0.4)","duration":450}},"caption":{"type":"object","default":{"show":false,"source":"title","position":"overlay"}},"lightbox":{"type":"object","default":{"caption":true,"thumbs":true,"slideshow":false,"slideshowSpeed":3000}},"video":{"type":"object","default":{"controls":true,"autoplay":false,"muted":false,"loop":false,"fitToWindow":true}},"captionTypo":{"type":"object","default":{"fontSize":{"desktop":13,"tablet":13,"mobile":12},"fontFamily":"","fontWeight":400,"lineHeight":"140%"}},"captionColor":{"type":"string","default":""},"carousel":{"type":"object","default":{"autoplay":false,"autoplaySpeed":3000,"loop":true,"arrows":true,"dots":true}},"paginationType":{"type":"string","default":"load_more"},"perPage":{"type":"number","default":9},"loadMoreText":{"type":"string","default":"Load More"},"columns":{"type":"object","default":{"desktop":3,"tablet":2,"mobile":1}},"columnGap":{"type":"string","default":"30px"},"rowGap":{"type":"string","default":"40px"},"coverImage":{"type":"object","default":{"ratio":"3:4"}},"focalPoint":{"type":"object","default":{"x":0.5,"y":0.5}},"imgBorder":{"type":"object","default":{"width":"1px","style":"solid","color":"#0575e6","side":"all","radius":"3px"}},"loadMoreBtnTypo":{"type":"object","default":{"fontSize":{"desktop":16,"tablet":16,"mobile":14},"fontFamily":"Open Sans","fontWeight":500,"lineHeight":"135%"}},"loadMoreBtnColors":{"type":"object","default":{"color":"#fff","bg":"#2f5aae"}},"loadMoreBtnPadding":{"type":"object","default":{"top":"6px","right":"12px","bottom":"6px","left":"12px"}},"loadMoreBtnBorder":{"type":"object","default":{"width":"1px","style":"solid","color":"#0575e6","side":"all","radius":"3px"}},"showSearch":{"type":"boolean","default":false},"searchStyle":{"type":"string","default":"classic"},"showVoiceSearch":{"type":"boolean","default":true},"searchAutocomplete":{"type":"boolean","default":false},"searchHighlight":{"type":"boolean","default":false},"searchResultCount":{"type":"boolean","default":false},"searchChips":{"type":"boolean","default":false},"searchIcon":{"type":"string","default":"search-1"},"searchPlaceholder":{"type":"string","default":""},"searchAlign":{"type":"string","default":"left"},"searchWidth":{"type":"string","default":"300px"},"searchHeight":{"type":"string","default":"40px"},"searchBgColor":{"type":"string","default":""},"searchTextColor":{"type":"string","default":""},"searchIconColor":{"type":"string","default":""},"searchIconSize":{"type":"number","default":18},"searchBorderColor":{"type":"string","default":""},"searchBorderRadius":{"type":"string","default":"8px"},"searchBorderWidth":{"type":"string","default":"1px"},"searchTypo":{"type":"object","default":{"fontSize":{"desktop":14,"tablet":14,"mobile":14},"fontFamily":"","fontWeight":400,"lineHeight":"140%"}}},"supports":{"align":["wide","full"],"html":false},"example":{"attributes":{"preview":true,"columns":{"desktop":1,"tablet":1,"mobile":1}}},"editorScript":["file:.\/index.js","wp-api","wp-api-request","wp-util"],"editorStyle":"file:.\/index.css","style":"file:.\/view.css","render":"file:.\/render.php","viewScript":"file:.\/view.js"}},"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.2.1","1.2.2","1.3.0"],"block_files":["\/tags\/1.3.0\/build\/index.js","\/tags\/1.3.0\/build\/index.css","\/tags\/1.3.0\/build\/view.css"],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3088437,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3134245,"resolution":"10","location":"assets","locale":"","width":833,"height":599},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3134245,"resolution":"2","location":"assets","locale":"","width":833,"height":770},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3134245,"resolution":"3","location":"assets","locale":"","width":825,"height":547},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3134245,"resolution":"4","location":"assets","locale":"","width":830,"height":588},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3134245,"resolution":"5","location":"assets","locale":"","width":829,"height":817},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3134245,"resolution":"6","location":"assets","locale":"","width":833,"height":487},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3134245,"resolution":"7","location":"assets","locale":"","width":833,"height":686},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3134245,"resolution":"8","location":"assets","locale":"","width":833,"height":737},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3134245,"resolution":"9","location":"assets","locale":"","width":833,"height":545}},"screenshots":{"1":"Settings","2":"Default","3":"Favorite","4":"Only Photos","5":"Only Videos","6":"Specific Album","7":"Ratio Square","8":"Ratio Landscape","9":"Ratio Horizontal","10":"Ratio Potrait"}},"plugin_section":[172757],"plugin_tags":[5719,1220,210,21826,205],"plugin_category":[50],"plugin_contributors":[183994,226291,198370],"plugin_business_model":[],"class_list":["post-192211","plugin","type-plugin","status-publish","hentry","plugin_section-block","plugin_tags-album","plugin_tags-block","plugin_tags-gallery","plugin_tags-google-photos","plugin_tags-photos","plugin_category-media","plugin_contributors-abuhayat","plugin_contributors-bplugins","plugin_contributors-btechnologies","plugin_committers-abuhayat","plugin_committers-bplugins","plugin_committers-btechnologies","plugin_support_reps-btechnologies","plugin_support_reps-helaluddin2k"],"banners":{"banner":"https:\/\/ps.w.org\/embed-google-photos\/assets\/banner-772x250.png?rev=3623274","banner_2x":"https:\/\/ps.w.org\/embed-google-photos\/assets\/banner-1544x500.png?rev=3623274","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/embed-google-photos\/assets\/icon.svg?rev=3623274","icon":"https:\/\/ps.w.org\/embed-google-photos\/assets\/icon.svg?rev=3623274","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-1.png?rev=3088437","caption":"Settings"},{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-2.png?rev=3134245","caption":"Default"},{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-3.png?rev=3134245","caption":"Favorite"},{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-4.png?rev=3134245","caption":"Only Photos"},{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-5.png?rev=3134245","caption":"Only Videos"},{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-6.png?rev=3134245","caption":"Specific Album"},{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-7.png?rev=3134245","caption":"Ratio Square"},{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-8.png?rev=3134245","caption":"Ratio Landscape"},{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-9.png?rev=3134245","caption":"Ratio Horizontal"},{"src":"https:\/\/ps.w.org\/embed-google-photos\/assets\/screenshot-10.png?rev=3134245","caption":"Ratio Potrait"}],"raw_content":"<!--section=description-->\n<p><strong>Import photos and videos from your Google Photos account and show them as responsive grid, masonry, carousel, and story galleries. Pick your media with Google's official Photos Picker, save it to your own Media Library, then design the gallery in the block editor \u2014 block or shortcode.<\/strong><\/p>\n\n<p><a href=\"https:\/\/bplugins.com\/products\/embed-google-photos\/\">Gallery for Google Photos<\/a> | <a href=\"https:\/\/www.youtube.com\/watch?v=ufKMktJm1ho\">Documentation<\/a> | <a href=\"https:\/\/bplugins.com\/products\/embed-google-photos\/pricing\/\">Pricing<\/a> | <a href=\"https:\/\/bplugins.com\/support\/\">Support<\/a> | <a href=\"https:\/\/bplugins.com\/products\/embed-google-photos\/#demos\">Demo<\/a><\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=ufKMktJm1ho<\/p>\n\n<p><a href=\"https:\/\/bplugins.com\/products\/embed-google-photos\/\">Gallery for Google Photos<\/a> publishes your Google Photos library without coding. Choose a layout, set responsive columns, add captions and hover effects, and open photos in a full-screen lightbox with video playback. Because the photos you pick are copied into your own Media Library, your galleries keep working even after your Google session expires.<\/p>\n\n<p>Use it for photography portfolios, travel blogs, event recaps, real-estate listings, or client galleries. It works with any WordPress theme.<\/p>\n\n<h3>Key Features \u2013 Free Version<\/h3>\n\n<p><strong>Import &amp; Connection<\/strong><\/p>\n\n<ul>\n<li><strong>Photo &amp; Video Import<\/strong>: Import from Google Photos with the official Photos Picker.<\/li>\n<li><strong>Saved to Media Library<\/strong>: Media is stored in your own Media Library, so galleries keep working.<\/li>\n<li><strong>Self-Hosted OAuth<\/strong>: Your Google credentials stay on your server, never sent to us.<\/li>\n<li><strong>Authorization Sidebar<\/strong>: Field validation, loading state, one-click connect\/disconnect.<\/li>\n<li><strong>Media Type Filter<\/strong>: Show All Media, Photos only, or Videos only.<\/li>\n<\/ul>\n\n<p><strong>Layouts<\/strong><\/p>\n\n<ul>\n<li><strong>Grid Layout<\/strong>: A fully responsive photo grid.<\/li>\n<li><strong>Masonry Layout<\/strong>: Pinterest-style layout; every image keeps its own ratio.<\/li>\n<li><strong>Carousel \/ Slider<\/strong>: Autoplay, loop, arrows, and pagination dots.<\/li>\n<li><strong>Memories \/ Stories Layout<\/strong>: Google Photos\u2013style round story bubbles.<\/li>\n<li><strong>Responsive Columns<\/strong>: Separate column counts for desktop, tablet, and mobile.<\/li>\n<li><strong>Column &amp; Row Gap<\/strong>: Adjustable spacing in both directions.<\/li>\n<li><strong>Aspect Ratio Control<\/strong>: 16:9, 4:3, 1:1, 3:4, or 9:16.<\/li>\n<li><strong>Image Border<\/strong>: Width, style, color, and radius.<\/li>\n<\/ul>\n\n<p><strong>Captions &amp; Hover<\/strong><\/p>\n\n<ul>\n<li><strong>Captions<\/strong>: Pull captions from the image title or date.<\/li>\n<li><strong>Caption Position<\/strong>: Below the image, or overlaid on hover.<\/li>\n<li><strong>Caption Styling<\/strong>: Typography and color controls.<\/li>\n<li><strong>Hover Effects<\/strong>: Zoom, overlay, and caption slide-in.<\/li>\n<li><strong>Meta Overlay<\/strong>: Show each photo's date and dimensions on hover.<\/li>\n<\/ul>\n\n<p><strong>Search &amp; Filtering<\/strong><\/p>\n\n<ul>\n<li><strong>Live Search Bar<\/strong>: Always-visible or expandable; filters by title or date as visitors type.<\/li>\n<li><strong>Voice Search<\/strong>: Search by speaking; hidden automatically where unsupported.<\/li>\n<li><strong>Autocomplete Suggestions<\/strong>: Matching titles and dates drop down while typing.<\/li>\n<li><strong>Highlighted Matches<\/strong>: Matched text is highlighted in results and suggestions.<\/li>\n<li><strong>Live Result Count<\/strong>: A \"3 of 125 photos\" indicator while filtering.<\/li>\n<li><strong>Year Filter Chips<\/strong>: One-click chips to filter by year.<\/li>\n<li><strong>Individual Toggles<\/strong>: Every search feature can be turned on or off on its own.<\/li>\n<\/ul>\n\n<p><strong>Photo Filters &amp; Cropping<\/strong><\/p>\n\n<ul>\n<li><strong>Visual Filter Presets<\/strong>: Grayscale, Sepia, Vintage, Warm, and Cool, with optional reveal-original on hover.<\/li>\n<li><strong>Focal Point Crop<\/strong>: One crop focus for all images with a live preview, plus per-photo fine-tuning so faces are never cut off.<\/li>\n<li><strong>Ken Burns Motion<\/strong>: Continuous zoom \/ pan at an adjustable speed; great for hero backgrounds and kiosks.<\/li>\n<\/ul>\n\n<p><strong>Lightbox<\/strong><\/p>\n\n<ul>\n<li><strong>Fancybox Lightbox<\/strong>: Full-screen viewer with photo and video playback.<\/li>\n<li><strong>Lightbox Navigation<\/strong>: Caption, keyboard navigation, slideshow autoplay, thumbnails bar.<\/li>\n<li><strong>Download Button<\/strong>: Optional toolbar button to save the original image.<\/li>\n<li><strong>Social Share Buttons<\/strong>: Facebook, X, Pinterest, and Copy-link in the toolbar.<\/li>\n<li><strong>Deep Link to a Photo<\/strong>: The open photo appears in the URL (?photo=N), so a shared link reopens it.<\/li>\n<li><strong>Video Options<\/strong>: Controls, autoplay, muted, loop, and fit-to-window.<\/li>\n<\/ul>\n\n<p><strong>Pagination<\/strong><\/p>\n\n<ul>\n<li><strong>Three Modes<\/strong>: Show All, Load More, or numbered pagination.<\/li>\n<li><strong>Items Per Page<\/strong>: Set how many photos load at a time.<\/li>\n<li><strong>Custom Button Text<\/strong>: Set your own \"Load More\" label.<\/li>\n<li><strong>Button Styling<\/strong>: Color, typography, border, and padding.<\/li>\n<\/ul>\n\n<p><strong>Performance &amp; SEO<\/strong><\/p>\n\n<ul>\n<li><strong>Lazy Loading<\/strong>: Blur \/ low-res placeholders make the page feel instant.<\/li>\n<li><strong>Responsive Images<\/strong>: srcset so browsers fetch the right size: faster loads, less bandwidth.<\/li>\n<li><strong>Schema.org Markup<\/strong>: ImageObject structured data for Google Images and rich results.<\/li>\n<li><strong>Per-Image Alt Text<\/strong>: Editable alt text for accessibility and SEO.<\/li>\n<\/ul>\n\n<p><strong>Usability<\/strong><\/p>\n\n<ul>\n<li><strong>Drag-to-Reorder<\/strong>: Rearrange selected photos in the editor.<\/li>\n<li><strong>Frontend Sort Dropdown<\/strong>: Visitors reorder by Newest, Oldest, or Random.<\/li>\n<li><strong>Photo Count Badge<\/strong>: Show a \"125 photos\" badge above the gallery.<\/li>\n<li><strong>Preview Limit &amp; View All<\/strong>: Show the first N photos with a button to reveal the rest.<\/li>\n<li><strong>Import \/ Export<\/strong>: Copy a gallery's styling and layout as JSON to reuse elsewhere.<\/li>\n<li><strong>Shortcode Support<\/strong>: Embed anywhere outside Gutenberg with [google_photos id=..].<\/li>\n<li><strong>Guided Empty States<\/strong>: Polished empty and not-connected states with clear next actions.<\/li>\n<li><strong>Modern React Dashboard<\/strong>: Demos and help built into wp-admin.<\/li>\n<li><strong>Theme Compatible<\/strong>: Works with any theme; supports wide \/ full alignment.<\/li>\n<\/ul>\n\n<h3>Gallery for Google Photos Pro \u2013 Unlock Premium Features<\/h3>\n\n<p><a href=\"https:\/\/bplugins.com\/products\/embed-google-photos\/pricing\/\">Gallery for Google Photos Pro<\/a> adds advanced layouts, album automation, client-delivery tools, and gallery protection, so you can run a professional photo workflow from WordPress.<\/p>\n\n<h3>What's New in the Pro Version?<\/h3>\n\n<p><strong>Advanced Layouts &amp; Display<\/strong><\/p>\n\n<ul>\n<li><strong>Justified \/ Mosaic Layout<\/strong>: Images fill every row edge-to-edge at varying widths.<\/li>\n<li><strong>Timeline Layout<\/strong>: Group photos by day, month, or year with sticky date headers.<\/li>\n<li><strong>Advanced Carousel Options<\/strong>: Slide effect, speed, slides-per-group, centered slides, grab cursor, pause-on-hover, free-mode.<\/li>\n<li><strong>Frontend Media Filter Bar<\/strong>: Visitors filter by Photos, Videos, or All, with custom labels.<\/li>\n<li><strong>Design Presets<\/strong>: One-click looks (Clean Grid, Dark Portfolio, Polaroid, Magazine, and more) plus save your own.<\/li>\n<\/ul>\n\n<p><strong>Premium Lightbox &amp; Hover<\/strong><\/p>\n\n<ul>\n<li><strong>Premium Lightbox Skins<\/strong>: Multiple visual themes for the viewer.<\/li>\n<li><strong>Video Autoplay in Lightbox<\/strong>: Videos start playing when opened.<\/li>\n<li><strong>EXIF Display<\/strong>: Camera, lens, aperture, shutter speed, and ISO from the image data.<\/li>\n<li><strong>Per-Image Custom Link<\/strong>: Link any image to an external URL in a new tab.<\/li>\n<li><strong>Advanced Hover Styling<\/strong>: Grayscale effect, hover icon, and gradient overlay.<\/li>\n<\/ul>\n\n<p><strong>Advanced Search<\/strong><\/p>\n\n<ul>\n<li><strong>Fuzzy \/ Typo-Tolerant Search<\/strong>: \"beech\" still finds \"beach\".<\/li>\n<li><strong>\"\/\" Keyboard Shortcut<\/strong>: Focus the search box from anywhere on the page.<\/li>\n<li><strong>Recent Searches<\/strong>: Remembered per gallery in a dropdown.<\/li>\n<li><strong>\"Did You Mean\u2026\" Suggestion<\/strong>: Offered when a search returns nothing.<\/li>\n<li><strong>Sticky Search Bar<\/strong>: Follows scroll on long galleries.<\/li>\n<\/ul>\n\n<p><strong>Client Delivery for Photographers<\/strong><\/p>\n\n<ul>\n<li><strong>Client Picks (Proofing)<\/strong>: Visitors heart favorites and submit them; the selection is emailed to you and saved under Google Photos \u2192 Client Picks, with optional per-photo comments.<\/li>\n<li><strong>Download as ZIP<\/strong>: Visitors download the whole gallery as one ZIP of the originals.<\/li>\n<li><strong>Gallery Expiry<\/strong>: Auto-hide a gallery after a chosen date, with a custom message.<\/li>\n<\/ul>\n\n<p><strong>Analytics &amp; Maintenance<\/strong><\/p>\n\n<ul>\n<li><strong>Gallery Analytics<\/strong>: Views and lightbox opens, with totals, a most-viewed table, and a bar chart.<\/li>\n<li><strong>Media Cleanup Manager<\/strong>: Per-gallery storage, one-click orphaned-photo cleanup, and optional delete-photos-with-gallery.<\/li>\n<\/ul>\n\n<p><strong>Image Styling<\/strong><\/p>\n\n<ul>\n<li><strong>Image Box Shadow<\/strong>: Add depth with customizable shadows.<\/li>\n<li><strong>Advanced Border Radius<\/strong>: Per-corner control for unique shapes.<\/li>\n<li><strong>Gradient Overlays<\/strong>: Apply gradient effects over gallery images.<\/li>\n<\/ul>\n\n<p><strong>Album Sync &amp; Automation<\/strong><\/p>\n\n<ul>\n<li><strong>Album Auto-Sync<\/strong>: Paste a shared album URL; new photos appear automatically via WP-Cron.<\/li>\n<li><strong>Sync Interval Choice<\/strong>: Check every 15 minutes, hourly, or daily.<\/li>\n<li><strong>Live Event \/ Wedding Mode<\/strong>: Open pages refresh themselves and reveal newly synced photos with no reload, behind a pulsing \"Live \u00b7 N new\" badge. Guests drop photos into the shared album and the wall updates itself.<\/li>\n<li><strong>Multi-Album per Gallery<\/strong>: Pull from several shared albums, with an optional album-tab switcher.<\/li>\n<li><strong>Shared Album Embed<\/strong>: Display any public shared album without full OAuth setup.<\/li>\n<li><strong>Bulk Album Import<\/strong>: Import a whole shared album in one sync.<\/li>\n<\/ul>\n\n<p><strong>Gallery Protection<\/strong><\/p>\n\n<ul>\n<li><strong>Password-Protected Gallery<\/strong>: Restrict access with a password.<\/li>\n<li><strong>Right-Click Protection<\/strong>: Disable the context menu to discourage downloading.<\/li>\n<li><strong>Automatic Watermark<\/strong>: Server-side logo watermark on import, with position, opacity, and size.<\/li>\n<\/ul>\n\n<p><strong>Performance<\/strong><\/p>\n\n<ul>\n<li><strong>Auto WebP Conversion<\/strong>: Convert imported images to WebP for faster loads and smaller files.<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/bplugins.com\/products\/embed-google-photos\/pricing\/\">Upgrade to Pro<\/a> to unlock all premium features.<\/p>\n\n<h3>How to Use Gallery for Google Photos \u2013 Quick Start Guide<\/h3>\n\n<p>Getting started is easy!<\/p>\n\n<h3>Step-by-Step Setup<\/h3>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for <strong>Gallery for Google Photos<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Add your own Google API credentials (Client ID, Client Secret, Refresh Token) in the block's Authorization sidebar and connect. See the <a href=\"https:\/\/www.youtube.com\/watch?v=ufKMktJm1ho\">documentation<\/a> for the one-time Google Cloud setup.<\/li>\n<li>Add the <strong>Gallery for Google Photos block<\/strong>, click <strong>Select Photos<\/strong>, pick your media, choose a layout, configure settings, and publish.<\/li>\n<li>Or insert the generated <strong>shortcode<\/strong> anywhere to show your gallery.<\/li>\n<\/ol>\n\n<p>Enjoy fast, responsive Google Photos galleries on your site!<\/p>\n\n<p><a href=\"https:\/\/bplugins.com\/products\/embed-google-photos\/#demos\">Live Demo<\/a> | <a href=\"https:\/\/bplugins.com\/products\/embed-google-photos\/pricing\/\">Try the Pro Version<\/a><\/p>\n\n<ul>\n<li>For installation help click on Installation Tab<\/li>\n<\/ul>\n\n<h3>User Feedback<\/h3>\n\n<h4>- Did you like this plugin? Dislike it? Have a feature request? <a href=\"mailto:support@bplugins.com\" title=\"Send feedback\">Please share your feedback with us<\/a><\/h4>\n\n<h3>Check out our other WordPress Plugins<\/h3>\n\n<ul>\n<li><a href=\"https:\/\/bplugins.com\/products\/b-slider\/\">bSlider<\/a> \u2013 Responsive image, post, product, and video sliders.<\/li>\n<li><a href=\"https:\/\/bplugins.com\/products\/html5-audio-player\/\">HTML5 Audio Player<\/a> \u2013 Best audio player for WordPress.<\/li>\n<li><a href=\"https:\/\/bplugins.com\/products\/pdf-poster\/\">PDF Poster<\/a> \u2013 A fully-featured PDF viewer.<\/li>\n<li><a href=\"https:\/\/bplugins.com\/products\/streamcast-radio-player\/\">StreamCast<\/a> \u2013 A fully-featured radio player.<\/li>\n<li><a href=\"https:\/\/bplugins.com\/products\/3d-viewer\/\">3D Viewer<\/a> \u2013 Display interactive 3D models on the web.<\/li>\n<\/ul>\n\n<h3>Source Code<\/h3>\n\n<p>You can find the source code, report bugs, and contribute to the development of this plugin on our GitHub repository:\n<a href=\"https:\/\/github.com\/bPlugins\/new-embed-google-photos\"><strong>Gallery for Google Photos on GitHub<\/strong><\/a><\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services. Understanding what is sent, and when, helps clarify how your data is handled.<\/p>\n\n<h4>Google Photos (Google OAuth 2.0 + Google Photos Picker API)<\/h4>\n\n<p>What it is and why it is used: This plugin is a Google Photos gallery. To let you pick photos and videos from your own Google Photos account and display them on your site, it connects to Google's APIs on your server. This connection only happens after you enter your own Google API credentials (Client ID, Client Secret, Refresh Token) in the plugin settings and use the \"Select Photos\" flow; it is required for the plugin to function.<\/p>\n\n<p>Which endpoints are contacted and what data is sent:<\/p>\n\n<ul>\n<li>https:\/\/oauth2.googleapis.com\/token \u2014 your Client ID, Client Secret and Refresh Token are sent to exchange them for a short-lived access token.<\/li>\n<li>https:\/\/photospicker.googleapis.com\/v1 \u2014 the access token is sent (as a Bearer token) to create a picker session, check its status, and list the media items you selected. The selected photos\/videos are then downloaded to your own WordPress Media Library.<\/li>\n<\/ul>\n\n<p>When it happens: only in wp-admin, triggered by an authenticated administrator connecting an account or clicking \"Select Photos\". No data is sent from your visitors' browsers, and the OAuth credentials\/tokens never reach the frontend.<\/p>\n\n<p>Your credentials and tokens are stored only on your own server (in your WordPress database) and are sent only to Google. This plugin does not transmit them to bPlugins or any other third party.<\/p>\n\n<p>Google's terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/policies.google.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<li>Google APIs Terms of Service: https:\/\/developers.google.com\/terms<\/li>\n<\/ul>\n\n<h4>Schema.org vocabulary (https:\/\/schema.org)<\/h4>\n\n<p>What it is and why it is used: On the frontend the plugin outputs Schema.org \"ImageObject\" structured data (JSON-LD) for each gallery image so search engines such as Google can better understand and index your images (Google Images \/ rich results, improving SEO).<\/p>\n\n<p>What data is sent: None. The address \"https:\/\/schema.org\" appears only as the standard <code>@context<\/code> identifier inside the JSON-LD markup \u2014 it is a vocabulary name, not a network request. The plugin does not connect to, load anything from, or send any data to schema.org. All image data stays on your own server.<\/p>\n\n<p>Terms &amp; privacy: https:\/\/schema.org\/docs\/terms.html<\/p>\n\n<h3>Third-Party Libraries<\/h3>\n\n<p>This plugin bundles the following third-party JavaScript\/PHP libraries.<\/p>\n\n<h4>Swiper<\/h4>\n\n<ul>\n<li><strong>Source:<\/strong> https:\/\/swiperjs.com\/<\/li>\n<li><strong>GitHub:<\/strong> https:\/\/github.com\/nolimits4web\/swiper<\/li>\n<li><strong>License:<\/strong> MIT \u2013 https:\/\/github.com\/nolimits4web\/swiper\/blob\/master\/LICENSE<\/li>\n<li><strong>Purpose:<\/strong> Provides the \"Carousel\" gallery layout \u2014 a touch-enabled slider with autoplay, loop, navigation arrows and pagination dots.<\/li>\n<\/ul>\n\n<h4>Plyr<\/h4>\n\n<ul>\n<li><strong>Source:<\/strong> https:\/\/plyr.io\/<\/li>\n<li><strong>GitHub:<\/strong> https:\/\/github.com\/sampotts\/plyr<\/li>\n<li><strong>License:<\/strong> MIT \u2013 https:\/\/github.com\/sampotts\/plyr\/blob\/master\/LICENSE.md<\/li>\n<li><strong>Purpose:<\/strong> A simple, accessible HTML5 media player used to play gallery videos inside the lightbox.<\/li>\n<\/ul>\n\n<h4>Fancybox (@fancyapps\/ui)<\/h4>\n\n<ul>\n<li><strong>Source:<\/strong> https:\/\/fancyapps.com\/fancybox\/<\/li>\n<li><strong>GitHub:<\/strong> https:\/\/github.com\/fancyapps\/ui<\/li>\n<li><strong>License:<\/strong> Fancyapps UI License \u2013 https:\/\/fancyapps.com\/pricing\/ (note: this is a proprietary license, not MIT\/GPL).<\/li>\n<li><strong>Purpose:<\/strong> The lightbox that opens photos and videos in a full-screen viewer.<\/li>\n<\/ul>\n\n<h4>Immer<\/h4>\n\n<ul>\n<li><strong>Source:<\/strong> https:\/\/immerjs.github.io\/immer\/<\/li>\n<li><strong>GitHub:<\/strong> https:\/\/github.com\/immerjs\/immer<\/li>\n<li><strong>License:<\/strong> MIT \u2013 https:\/\/github.com\/immerjs\/immer\/blob\/main\/LICENSE<\/li>\n<li><strong>Purpose:<\/strong> Enables safe, immutable updates of block settings inside the Gutenberg editor.<\/li>\n<\/ul>\n\n<h4>Axios<\/h4>\n\n<ul>\n<li><strong>Source:<\/strong> https:\/\/axios-http.com\/<\/li>\n<li><strong>GitHub:<\/strong> https:\/\/github.com\/axios\/axios<\/li>\n<li><strong>License:<\/strong> MIT \u2013 https:\/\/github.com\/axios\/axios\/blob\/v1.x\/LICENSE<\/li>\n<li><strong>Purpose:<\/strong> Promise-based HTTP client used for the plugin's admin\/editor AJAX requests.<\/li>\n<\/ul>\n\n<h4>React Router (react-router-dom)<\/h4>\n\n<ul>\n<li><strong>Source:<\/strong> https:\/\/reactrouter.com\/<\/li>\n<li><strong>GitHub:<\/strong> https:\/\/github.com\/remix-run\/react-router<\/li>\n<li><strong>License:<\/strong> MIT \u2013 https:\/\/github.com\/remix-run\/react-router\/blob\/main\/LICENSE.md<\/li>\n<li><strong>Purpose:<\/strong> Client-side routing for the plugin's admin \"Demo &amp; Help\" dashboard.<\/li>\n<\/ul>\n\n<h4>Font Awesome<\/h4>\n\n<ul>\n<li><strong>Source:<\/strong> https:\/\/fontawesome.com\/<\/li>\n<li><strong>GitHub:<\/strong> https:\/\/github.com\/FortAwesome\/Font-Awesome<\/li>\n<li><strong>License:<\/strong> SIL OFL 1.1 (Fonts), MIT (CSS), CC BY 4.0 (Icons) \u2013 https:\/\/fontawesome.com\/license\/free<\/li>\n<li><strong>Purpose:<\/strong> Provides scalable vector icons used in the block and editor interface.<\/li>\n<\/ul>\n\n<h4>bpl-tools<\/h4>\n\n<ul>\n<li><strong>Source \/ GitHub:<\/strong> https:\/\/github.com\/bPlugins\/bpl-tools<\/li>\n<li><strong>License:<\/strong> GPL-2.0-or-later \u2013 https:\/\/www.gnu.org\/licenses\/gpl-2.0.html<\/li>\n<li><strong>Purpose:<\/strong> Shared utility library providing admin dashboard components and common Gutenberg editor controls.<\/li>\n<li><strong>External Services:<\/strong> The library may connect to bPlugins, WordPress.org, and Freemius services for product data and checkout functionality. See full details: https:\/\/github.com\/bPlugins\/bpl-tools#external-requests--why-they-are-made<\/li>\n<\/ul>\n\n<h4>Freemius Lite SDK<\/h4>\n\n<ul>\n<li><strong>Source:<\/strong> https:\/\/bplugins.com\/<\/li>\n<li><strong>GitHub:<\/strong> https:\/\/github.com\/bPlugins\/freemius-lite-sdk<\/li>\n<li><strong>License:<\/strong> GPL-2.0-or-later \u2013 https:\/\/www.gnu.org\/licenses\/gpl-2.0.html<\/li>\n<li><strong>Purpose:<\/strong> Provides an opt-in consent form for usage tracking and analytics to help improve the plugin. No data is sent before explicit user consent.<\/li>\n<li><strong>External Services:<\/strong> Communicates with <code>api.bplugins.com<\/code> (activation events) and <code>wp.freemius.com<\/code> (opt-in processing) only after user opt-in. See <a href=\"https:\/\/bplugins.com\/privacy-policy\">bPlugins Privacy Policy<\/a> and <a href=\"https:\/\/freemius.com\/privacy\/\">Freemius Privacy Policy<\/a>.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h3>From Gutenberg Editor:<\/h3>\n\n<ol>\n<li>Go to the WordPress Block\/Gutenberg Editor<\/li>\n<li>Search For <strong>Gallery for Google Photos<\/strong><\/li>\n<li>Click on the <strong>Gallery for Google Photos<\/strong> block to add the block<\/li>\n<\/ol>\n\n<h3>Download &amp; Upload:<\/h3>\n\n<ol>\n<li>Download the <strong>Gallery for Google Photos<\/strong> plugin (<em>.zip file<\/em>)<\/li>\n<li>In your admin area, go to the Plugins menu and click on <strong>Add New<\/strong><\/li>\n<li>Click on <strong>Upload Plugin<\/strong> and choose the <strong><code>embed-google-photos.zip<\/code><\/strong> file and click on <strong>Install Now<\/strong><\/li>\n<li>Activate the plugin and Enjoy!<\/li>\n<\/ol>\n\n<h3>Manually:<\/h3>\n\n<ol>\n<li>Download and upload the <strong>Gallery for Google Photos<\/strong> plugin to the <strong><code>\/wp-content\/plugins\/<\/code><\/strong> directory<\/li>\n<li>Activate the plugin through the Plugins menu in WordPress<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20gallery%20for%20google%20photos%20free%3F\"><h3>Is Gallery for Google Photos free?<\/h3><\/dt>\n<dd><p>Yes, Gallery for Google Photos is a free Gutenberg block plugin. The free version includes Grid, Masonry, Carousel, and Memories layouts, the Fancybox lightbox, pagination, captions, hover effects, live search, visual filters, focal-point cropping, lazy loading, and more.<\/p><\/dd>\n<dt id=\"what%20extra%20features%20does%20the%20pro%20version%20add%3F\"><h3>What extra features does the Pro version add?<\/h3><\/dt>\n<dd><p>Pro adds Justified\/Mosaic and Timeline layouts, one-click Design Presets, advanced carousel options, premium lightbox skins with EXIF display, album auto-sync (with 15-min\/hourly\/daily interval), Live Event \/ Wedding Mode (self-updating gallery), multi-album galleries with tabs, Client Proofing (visitors select photos and submit them to you), Download as ZIP, gallery expiry, Advanced Search (fuzzy + shortcuts + recent searches), Gallery Analytics, Media Cleanup Manager, password-protected galleries, right-click protection, automatic watermark, WebP conversion, per-image custom links, frontend media filtering, image shadows, gradient overlays, and advanced hover styling.<\/p><\/dd>\n<dt id=\"do%20my%20google%20credentials%20stay%20on%20my%20server%3F\"><h3>Do my Google credentials stay on my server?<\/h3><\/dt>\n<dd><p>Yes. Your Google Client ID, Client Secret, and Refresh Token are stored only in your WordPress database and sent only to Google's servers. They are never transmitted to bPlugins or any third party.<\/p><\/dd>\n<dt id=\"how%20does%20album%20auto-sync%20work%3F\"><h3>How does Album Auto-Sync work?<\/h3><\/dt>\n<dd><p>Paste a public shared Google Photos album URL into the block. The plugin uses WP-Cron to check the album on your chosen interval and automatically imports any new photos into your Media Library and gallery. No manual re-importing needed.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20a%20shared%20google%20photos%20album%20without%20oauth%3F\"><h3>Can I embed a shared Google Photos album without OAuth?<\/h3><\/dt>\n<dd><p>Yes (Pro). You can paste any public shared Google Photos album URL and the plugin will import the photos without requiring full OAuth credentials.<\/p><\/dd>\n<dt id=\"can%20i%20password-protect%20a%20gallery%3F\"><h3>Can I password-protect a gallery?<\/h3><\/dt>\n<dd><p>Yes (Pro). You can set a password on any gallery. Visitors must enter the correct password before they can view the images.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20add%20watermarks%20to%20my%20images%3F\"><h3>Does the plugin add watermarks to my images?<\/h3><\/dt>\n<dd><p>Yes (Pro). You can upload a logo and the plugin applies it as a server-side watermark during import. You control position, size, and opacity.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20convert%20images%20to%20webp%3F\"><h3>Does the plugin convert images to WebP?<\/h3><\/dt>\n<dd><p>Yes (Pro). When enabled, images are automatically converted to WebP format during import for faster page loads and smaller file sizes.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20outside%20the%20gutenberg%20editor%3F\"><h3>Can I use it outside the Gutenberg editor?<\/h3><\/dt>\n<dd><p>Yes. Every gallery generates a shortcode [google_photos id=..] that works in the Classic Editor, page builders, widget areas, and template files.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20any%20wordpress%20theme%3F\"><h3>Does it work with any WordPress theme?<\/h3><\/dt>\n<dd><p>Yes, it works with any standard WordPress theme and supports wide and full alignment.<\/p><\/dd>\n<dt id=\"can%20i%20change%20block%20settings%3F\"><h3>Can I change block settings?<\/h3><\/dt>\n<dd><p>Yes, you can change all gallery settings from the Gutenberg block editor's right sidebar.<\/p><\/dd>\n<dt id=\"how%20many%20galleries%20can%20i%20create%3F\"><h3>How many galleries can I create?<\/h3><\/dt>\n<dd><p>Unlimited. You can create as many galleries as you need.<\/p><\/dd>\n<dt id=\"can%20i%20filter%20images%20and%20videos%3F\"><h3>Can I filter images and videos?<\/h3><\/dt>\n<dd><p>Yes. In the free version you can filter by media type (All, Photos, Videos) in the editor. The Pro version also adds a frontend filter bar so visitors can filter on the live page.<\/p><\/dd>\n<dt id=\"why%20do%20my%20google%20photos%20credentials%2Frefresh%20token%20expire%20after%207%20days%3F\"><h3>Why do my Google Photos credentials\/refresh token expire after 7 days?<\/h3><\/dt>\n<dd><p>If your Google Cloud OAuth app is set to \"Testing\" mode, Google automatically expires refresh tokens after 7 days, requiring you to reconnect your account. To prevent this, go to your Google Cloud Console under APIs &amp; Services &gt; OAuth consent screen, and change the Publishing status of your app from \"Testing\" to \"In Production\" (no verification is needed).<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>You can post your questions on the <a href=\"https:\/\/wordpress.org\/support\/plugin\/embed-google-photos\/\">support forum here<\/a><\/p><\/dd>\n<dt id=\"where%20do%20i%20report%20security%20bugs%20found%20in%20this%20plugin%3F\"><h3>Where do I report security bugs found in this plugin?<\/h3><\/dt>\n<dd><p>Please report security bugs found in the source code of the Gallery for Google Photos plugin through the <a href=\"https:\/\/patchstack.com\/database\/vdp\/\">Patchstack Vulnerability Disclosure Program<\/a>. The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0 - 18 July, 2026<\/h4>\n\n<ul>\n<li>New (Pro): Timeline layout \u2014 group photos by day \/ month \/ year with sticky date headers.<\/li>\n<li>New (Pro): Live Event \/ Wedding Mode \u2014 the gallery refreshes on its own and shows newly synced photos with no reload; choose a sync interval of 15 minutes, hourly, or daily.<\/li>\n<li>New (Pro): Multi-album per gallery \u2014 pull from several shared albums with an optional frontend album-tab switcher.<\/li>\n<li>New (Pro): Client Picks (Proofing) \u2014 visitors select photos and submit them; the selection is emailed to you and saved under Google Photos \u2192 Client Picks, with optional per-photo comments.<\/li>\n<li>New (Pro): Download as ZIP \u2014 visitors download the whole gallery as one ZIP of the local originals.<\/li>\n<li>New (Pro): Gallery expiry \u2014 auto-hide a gallery after a chosen date with a custom message.<\/li>\n<li>New (Pro): Design Presets \u2014 one-click looks (Clean Grid, Dark Portfolio, Polaroid, Magazine, and more) plus save your own.<\/li>\n<li>New (Pro): Advanced Search \u2014 fuzzy \/ typo-tolerant matching, \"\/\" focus shortcut, recent searches, \"Did you mean\u2026\", and a sticky search bar.<\/li>\n<li>New (Pro): EXIF display in the lightbox \u2014 camera, lens, aperture, shutter, and ISO.<\/li>\n<li>New (Pro): Gallery Analytics \u2014 views and lightbox opens with a \"most viewed\" dashboard.<\/li>\n<li>New (Pro): Media Cleanup Manager \u2014 per-gallery storage, orphaned-photo cleanup, and \"delete photos with gallery\".<\/li>\n<li>Security: sanitized the per-image link (blocks javascript: URIs) and hardened album-URL fetching against SSRF.<\/li>\n<li>Improved: added uninstall cleanup for stored credentials\/tokens; removed retired Library-API dead code.<\/li>\n<li>New: Live search bar with voice search, autocomplete (titles + dates), highlighted matches, live result count, and year filter chips \u2014 each toggleable.<\/li>\n<li>New: Visual filter presets (Grayscale, Sepia, Vintage, Warm, Cool) with an optional reveal-original-on-hover transition.<\/li>\n<li>New: Focal point crop control \u2014 set one crop focus for all images with a live preview, plus an optional per-image override.<\/li>\n<li>New: Ken Burns motion \u2014 adjustable continuous zoom \/ pan on images.<\/li>\n<li>New: Meta overlay \u2014 show each photo's date and dimensions on hover.<\/li>\n<li>New: Frontend sort dropdown (Newest \/ Oldest \/ Random), photo count badge, and preview limit with a \"View all\" button.<\/li>\n<li>New: Lightbox social share buttons (Facebook \/ X \/ Pinterest \/ Copy link) and deep-link to a photo via the URL.<\/li>\n<li>New: Optional download button in the lightbox toolbar.<\/li>\n<li>New: Import \/ Export gallery configuration as JSON.<\/li>\n<li>New: Memories \/ Stories layout.<\/li>\n<\/ul>\n\n<h4>1.2.2 - 16 July, 2026<\/h4>\n\n<ul>\n<li>Minor bug fix.<\/li>\n<\/ul>\n\n<h4>1.2.1 - 14 July, 2026<\/h4>\n\n<ul>\n<li>Important: Google retired the old Photos Library API, so older galleries may stop showing images. Now uses Google's new Photos Picker \u2014 reconnect your account and re-select your photos (they import into your Media Library and keep working).<\/li>\n<li>New: video support, Grid\/Masonry\/Carousel layouts, Load More &amp; Pagination, captions, and image aspect-ratio &amp; border controls.<\/li>\n<li>Performance\/SEO: lazy-load with blur placeholder, responsive images (srcset), Schema.org image markup, and per-image alt text.<\/li>\n<li>Security: fixed a stored XSS in the lightbox; made Google credentials (Client ID\/Secret\/Refresh Token) write-only and server-side only; closed the earlier OAuth token exposure.<\/li>\n<li>Improved: redesigned authorization flow; resolved all Plugin Check findings; documented external services and bundled third-party libraries.<\/li>\n<\/ul>\n\n<h4>1.0.9 - 28 Dec, 2024<\/h4>\n\n<ul>\n<li>Frontend useAjax use.<\/li>\n<\/ul>\n\n<h4>1.0.8 - 12 Dec, 2024<\/h4>\n\n<ul>\n<li>Extra code remove.<\/li>\n<\/ul>\n\n<h4>1.0.7 - 8 Dec, 2024<\/h4>\n\n<ul>\n<li>Some issues problem.<\/li>\n<\/ul>\n\n<h4>1.0.6 - 27 Nov, 2024<\/h4>\n\n<ul>\n<li>No publicly documented resource for your compressed content<\/li>\n<li>Undocumented use of a 3rd Party \/ external service<\/li>\n<\/ul>\n\n<h4>1.0.5 - 21 Nov,24<\/h4>\n\n<ul>\n<li>Trademark issues solved<\/li>\n<\/ul>\n\n<h4>1.0.4 - 9 Oct, 2024<\/h4>\n\n<ul>\n<li>Solved the problem where album list images were not found.<\/li>\n<\/ul>\n\n<h4>1.0.3 - 12 sept, 2024<\/h4>\n\n<ul>\n<li>Fixed the popup image resolution.<\/li>\n<\/ul>\n\n<h4>1.0.2 - 16 July, 2024<\/h4>\n\n<ul>\n<li>Load more button update.<\/li>\n<\/ul>\n\n<h4>1.0.1 - 18 May,2024<\/h4>\n\n<ul>\n<li>Authorization issues fixed.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial Release<\/li>\n<\/ul>","raw_excerpt":"Import your Google Photos into WordPress and show them as responsive grid, masonry, carousel, or story galleries via block or shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/192211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=192211"}],"author":[{"embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bplugins"}],"wp:attachment":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=192211"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=192211"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=192211"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=192211"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=192211"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=192211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}