{"id":373393,"date":"2026-09-23T10:34:47","date_gmt":"2026-09-23T10:34:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/infinite-picture-gallery\/"},"modified":"2026-09-23T10:34:10","modified_gmt":"2026-09-23T10:34:10","slug":"peal333-infinite-picture-gallery","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/peal333-infinite-picture-gallery\/","author":23335058,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.1","stable_tag":"2.0.1","tested":"7.1.2","requires":"5.0","requires_php":"7.0","requires_plugins":null,"header_name":"PEAL333 Infinite Picture Gallery","header_author":"Panupan Sriautharawong","header_description":"Create picture collections with images and videos and display them in a responsive, infinitely scrolling gallery.","assets_banners_color":"","last_updated":"2026-09-23 10:34:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":40,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.1":{"tag":"2.0.1","author":"peal333","date":"2026-09-23 10:34:10","revision":3709088}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3709086,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3709086,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3709086,"resolution":"1","location":"assets","locale":"","width":2610,"height":1526},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3709086,"resolution":"2","location":"assets","locale":"","width":2852,"height":1118},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3709086,"resolution":"3","location":"assets","locale":"","width":1866,"height":1256}},"screenshots":[]},"plugin_section":[],"plugin_tags":[210,604,5908,7757,6400],"plugin_category":[50],"plugin_contributors":[245789],"plugin_business_model":[],"class_list":["post-373393","plugin","type-plugin","status-publish","hentry","plugin_tags-gallery","plugin_tags-image-gallery","plugin_tags-infinite-scroll","plugin_tags-media-gallery","plugin_tags-video-gallery","plugin_category-media","plugin_contributors-peal333","plugin_committers-peal333"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/peal333-infinite-picture-gallery\/assets\/icon-128x128.png?rev=3709086","icon_2x":"https:\/\/ps.w.org\/peal333-infinite-picture-gallery\/assets\/icon-256x256.png?rev=3709086","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/peal333-infinite-picture-gallery\/assets\/screenshot-1.jpg?rev=3709086","caption":""},{"src":"https:\/\/ps.w.org\/peal333-infinite-picture-gallery\/assets\/screenshot-2.jpg?rev=3709086","caption":""},{"src":"https:\/\/ps.w.org\/peal333-infinite-picture-gallery\/assets\/screenshot-3.jpg?rev=3709086","caption":""}],"raw_content":"<!--section=description-->\n<p>PEAL333 Infinite Picture Gallery gives you a focused WordPress workflow for publishing visual collections. Each Picture can have a cover photo, an optional description, and an ordered set of additional images or videos from the Media Library.<\/p>\n\n<p>The plugin builds a central gallery index that automatically loads more collections as visitors scroll. The gallery URL, index appearance, and individual Picture detail pages can be configured under <strong>Pictures &gt; Settings<\/strong>. Individual Picture permalinks use the same gallery base, for example <code>\/gallery\/my-picture\/<\/code> when the gallery URL is <code>\/gallery\/<\/code>.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Dedicated <strong>Pictures<\/strong> content type for visual collections.<\/li>\n<li>Featured image support for a collection cover photo.<\/li>\n<li>Optional collection descriptions.<\/li>\n<li>Multiple images and videos per collection.<\/li>\n<li>Drag-and-drop media ordering in the WordPress editor.<\/li>\n<li>Configurable gallery URL and gallery title.<\/li>\n<li>Two gallery appearances: Classic Cards and Masonry.<\/li>\n<li>Customizable Picture detail width, alignment, media layout, columns, image shape, spacing, corners, and background.<\/li>\n<li>Optional title, published date, cover, description, Picture navigation, and accessible image lightbox on detail pages.<\/li>\n<li>Responsive infinite scrolling with accessible status, manual loading, failure fallback, and crawlable pagination.<\/li>\n<li>Native WordPress Media Library integration.<\/li>\n<li>Optional AIOSEO integration that synchronizes a Picture featured image to Facebook and Twitter\/X custom images.<\/li>\n<li>Compatible title handling for WordPress, Yoast SEO, Rank Math, and All in One SEO.<\/li>\n<li>No external services, tracking, or remote code.<\/li>\n<\/ul>\n\n<h4>Identifier changes in 2.0.0<\/h4>\n\n<p>Version 2.0.0 standardizes plugin-owned identifiers on the unique <code>pealipg<\/code> prefix required for collision safety. The custom post type is <code>pealipg_pictures<\/code>; plugin options, AJAX actions, query variables, nonces, asset handles, and stored gallery meta likewise use the <code>pealipg<\/code> namespace.<\/p>\n\n<p>The default gallery URL remains <code>\/gallery\/<\/code> and individual Picture URLs remain beneath the configured gallery base. Version 2.0.0 intentionally contains no automatic migration layer or legacy identifier aliases.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>PEAL333 Infinite Picture Gallery does not collect analytics, track visitors, contact external services, or transmit site data to third parties. All gallery content is stored using WordPress posts, post meta, options, and Media Library attachments on your site.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>peal333-infinite-picture-gallery<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the ZIP through <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>PEAL333 Infinite Picture Gallery<\/strong> through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Open <strong>Pictures &gt; Add New<\/strong> to create a collection.<\/li>\n<li>Set a cover photo, optionally add a description, and add additional gallery media.<\/li>\n<li>Open <strong>Pictures &gt; Settings<\/strong> to customize the public gallery, Picture detail pages, or AIOSEO integration.<\/li>\n<li>Visit the configured gallery URL. The default is <code>\/gallery\/<\/code>.<\/li>\n<\/ol>\n\n<p>The plugin automatically refreshes rewrite rules when its gallery URL changes. If a route still returns a 404 after a site move or unusual permalink change, visit <strong>Settings &gt; Permalinks<\/strong> and save the page once.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20change%20the%20%60%2Fgallery%2F%60%20url%3F\"><h3>Can I change the `\/gallery\/` URL?<\/h3><\/dt>\n<dd><p>Yes. Open <strong>Pictures &gt; Settings<\/strong> and change <strong>Gallery URL<\/strong>. The same base is used for individual Picture permalinks.<\/p><\/dd>\n<dt id=\"what%20gallery%20layouts%20are%20included%3F\"><h3>What gallery layouts are included?<\/h3><\/dt>\n<dd><p>Classic Cards preserves the original responsive grid design. Masonry keeps the natural proportions of cover media in a flowing column layout. Infinite scrolling works with both.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20individual%20picture%20pages%3F\"><h3>Can I customize individual Picture pages?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Pictures &gt; Settings &gt; Picture Detail<\/strong>, choose the page width, alignment, gallery layout, columns, image proportions, spacing, corners, and background. You can also show or hide the title, published date, cover photo, description, previous\/next navigation, and image lightbox.<\/p><\/dd>\n<dt id=\"how%20does%20the%20aioseo%20integration%20work%3F\"><h3>How does the AIOSEO integration work?<\/h3><\/dt>\n<dd><p>The integration is disabled by default. Enable it under <strong>Pictures &gt; Settings<\/strong>. When enabled, selecting a Picture featured image updates AIOSEO's Facebook and Twitter\/X editor fields to use <strong>Custom Image<\/strong>, and saving the Picture persists that featured image as both social custom images. The integration updates only the related social-image fields and leaves other AIOSEO data untouched.<\/p>\n\n<p>If AIOSEO is unavailable, PEAL333 Infinite Picture Gallery continues working normally.<\/p><\/dd>\n<dt id=\"can%20i%20use%20both%20images%20and%20videos%3F\"><h3>Can I use both images and videos?<\/h3><\/dt>\n<dd><p>Yes. Additional gallery media can contain images and videos from the WordPress Media Library.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20to%20a%20third-party%20service%3F\"><h3>Does the plugin send data to a third-party service?<\/h3><\/dt>\n<dd><p>No. PEAL333 Infinite Picture Gallery does not include analytics, tracking, external API calls, or remotely hosted executable code. The optional AIOSEO integration communicates only with AIOSEO code installed on the same WordPress site.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Added comprehensive Picture detail-page controls, including the requested Show Date option.<\/li>\n<li>Added responsive grid, stacked, and masonry detail layouts with configurable columns, image proportions, spacing, corners, width, alignment, and background.<\/li>\n<li>Added optional previous\/next Picture navigation and an accessible image lightbox.<\/li>\n<li>Reworked infinite scrolling as progressive enhancement over crawlable paginated gallery URLs.<\/li>\n<li>Added a visible Load More control, status announcements, request timeout, duplicate-card protection, deterministic ordering, explicit end-state responses, and a full-page fallback when AJAX is unavailable.<\/li>\n<li>Ensured published Pictures without media render a safe placeholder instead of interrupting pagination.<\/li>\n<li>Added keyboard media reordering in the Picture editor.<\/li>\n<li>Added theme template overrides and prefixed template filters for developers.<\/li>\n<li>Strengthened setting type validation, attachment validation, and namespace consistency.<\/li>\n<li>Improved the settings screen with clear General, Gallery Index, Picture Detail, and Integrations sections plus a View Gallery shortcut.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Standardized plugin-owned identifiers on the unique <code>PEALIPG<\/code> \/ <code>pealipg<\/code> prefix.<\/li>\n<li>Changed the custom post type identifier to <code>pealipg_pictures<\/code>.<\/li>\n<li>Changed gallery meta keys to <code>pealipg_description<\/code> and <code>pealipg_gallery_ids<\/code>.<\/li>\n<li>Changed plugin option names, AJAX action, query variables, nonces, request keys, asset handles, JavaScript globals, admin column keys, and UI selectors to the <code>pealipg<\/code> namespace.<\/li>\n<li>Removed old generic identifier aliases and legacy identifier fallbacks so the submission build cannot conflict with unrelated plugins using those names.<\/li>\n<li>Preserved the existing gallery URL behavior, templates, layouts, infinite scrolling, and optional AIOSEO integration.<\/li>\n<\/ul>\n\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>Renamed the plugin to <strong>PEAL333 Infinite Picture Gallery<\/strong> for a more distinctive WordPress.org directory identity.<\/li>\n<li>Updated the WordPress.org plugin slug\/text domain to <code>peal333-infinite-picture-gallery<\/code>.<\/li>\n<li>Preserved existing post types, stored metadata, settings, URLs, AJAX compatibility, and other upgrade-sensitive identifiers.<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Prefixed all template-scope variables with the plugin namespace to comply with WordPress Plugin Check global naming requirements.<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>Restored the AIOSEO integration setting default to disabled.<\/li>\n<li>Matched the proven Social Media Card Generator AIOSEO post-model update flow for Facebook and Twitter\/X custom images.<\/li>\n<li>Deferred AIOSEO persistence until the end of the Picture save request so normal save handlers finish first.<\/li>\n<li>Updated AIOSEO's live editor state when a Picture featured image is selected so Facebook and Twitter\/X immediately show Custom Image and the selected image.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Fixed the configured gallery title not appearing when WordPress resolved the gallery URL through the native Pictures archive route.<\/li>\n<li>Restored the original responsive Classic Cards layout as the default presentation.<\/li>\n<li>Reduced gallery appearance choices to Classic Cards and Masonry. Existing Cinematic selections safely fall back to Classic Cards.<\/li>\n<li>Defaulted AIOSEO synchronization on when the supported AIOSEO integration API is available. This behavior was superseded in 1.6.2, which restores the default to disabled.<\/li>\n<li>Simplified the Gallery URL settings copy.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added <strong>Pictures &gt; Settings<\/strong>.<\/li>\n<li>Added a configurable gallery URL, defaulting to <code>\/gallery\/<\/code>.<\/li>\n<li>Changed individual Picture canonical permalinks to use the configured gallery base.<\/li>\n<li>Added permanent redirects from pre-1.6 <code>\/picture\/<\/code> URLs.<\/li>\n<li>Added a configurable gallery title.<\/li>\n<li>Added Classic Cards, Masonry, and Cinematic gallery appearances.<\/li>\n<li>Added optional AIOSEO featured-image synchronization for Facebook and Twitter\/X social images.<\/li>\n<li>Added AIOSEO availability status to the settings screen.<\/li>\n<li>Expanded identifier prefixing for new options, query variables, nonces, AJAX actions, and asset handles.<\/li>\n<li>Retained legacy data keys and AJAX compatibility where changing them could break existing sites.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Prepared the plugin for WordPress.org directory submission.<\/li>\n<li>Added GPL licensing and standard WordPress.org plugin metadata.<\/li>\n<li>Improved save permissions, nonce handling, sanitization, and escaping.<\/li>\n<li>Internationalized user-facing strings.<\/li>\n<li>Refreshed the Picture editor with a responsive, accessible media-ordering interface.<\/li>\n<li>Added cover and media-count columns to the Pictures list screen.<\/li>\n<li>Removed inline frontend event handlers and moved presentation styles into plugin assets.<\/li>\n<li>Improved infinite-scroll error handling and keyboard\/focus behavior.<\/li>\n<li>Preserved existing content types, metadata, URLs, and public gallery behavior.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Pre-directory release used on existing sites.<\/li>\n<\/ul>","raw_excerpt":"Create image and video collections in WordPress and present them in a configurable, responsive gallery with seamless infinite scrolling.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/373393","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=373393"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/peal333"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=373393"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=373393"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=373393"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=373393"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=373393"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=373393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}