=== Portfolio Filter Gallery - Photo Gallery ===
Contributors: awordpresslife, razipathhan, hanif0991, muhammadshahid, fkfaisalkhan007, sharikkhan007, zishlife, FARAZFRANK
Donate link: https://paypal.me/awplife
Tags: portfolio, gallery, portfolio gallery, photo gallery, video gallery
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 2.2.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Create filterable portfolio galleries with photos, videos, category filters in masonry layouts. Supports Gutenberg blocks and Elementor widgets.

== Description ==

**Portfolio Filter Gallery** is a powerful and easy-to-use **photo gallery** plugin. It lets you sort images and videos into categories. Users can click buttons to filter and find what they need.

Designed for photographers, designers, agencies, and anyone who needs to display their work in an organized, professional way. Whether you are building a photography portfolio, a design showcase, or a simple image gallery, this plugin gives you the tools to present your content beautifully.


= Live Demos =

* [Video Gallery](https://awplife.com/demo/portfolio-filter-gallery-premium/video-gallery/)
* [Plugin Features](https://awplife.com/wordpress-plugins/portfolio-filter-gallery-wordpress-plugin/)
* [Gallery Demo](https://awplife.com/demo/portfolio-filter-gallery-premium/)
* [Buy Portfolio Filter Gallery Pro](https://awplife.com/account/signup/portfolio-filter-gallery)

= Documentation and Support =

* [Getting Started Guide](https://awplife.com/wordpress-plugins/portfolio-filter-gallery-new-wordpress-plugin/)
* [Community Support Forum](https://wordpress.org/support/plugin/portfolio-filter-gallery/)

= Video Tutorials =
https://www.youtube.com/watch?v=VpcdUM-47OU
 
= What This Plugin Does =

The core function of Portfolio Filter Gallery is to let you build galleries where users can click filter buttons to view specific categories of work. Instead of scrolling through an entire page of images, a visitor can select "Web Design" or "Photography" and see only those items.

The plugin includes a dedicated page for managing filter categories. You create your filters once, then assign them to individual images or videos as you build your gallery. This separation keeps your workflow clean and organized.

= Elementor or Gutenberg = 

Includes a dedicated Gutenberg block and Elementor widget with live canvas previews—select your gallery directly from the editor without copying shortcodes.

= Who This Plugin Is For =

* Photographers who want to display work by genre such as portraits, landscapes, or events
* Web designers and developers building project showcases for clients
* Creative agencies presenting work across multiple industries
* Architects organizing projects by type such as residential, commercial, or renovations
* Artists grouping pieces by medium, theme, or collection
* Freelancers who need a professional portfolio on their website
* Bloggers and businesses that want a simple, clean image gallery

= Core Features (Free Version) =

**Filterable Gallery**

* Create filter categories through a dedicated management page
* Assign one or more filters to each image or video
* Smooth CSS3 filter transitions with no page reloads
* "All" button to reset and show every item

**Gallery Layouts**

* Masonry layout that arranges images in a Pinterest-style grid based on their natural dimensions
* Standard grid layout for a clean, uniform look
* Choose between 2, 3, or 4 columns
* Adjustable spacing between gallery items

**Video Support**

* Embed YouTube videos
* Embed Vimeo videos
* Watch videos in Lightbox

**Customization**

* Show or hide image titles on hover or below the image
* Image numbering badges to display item order
* Grayscale hover effect for a polished visual style
* Custom filter button colors for background, text, and active states
* Configurable image border width and color

**Page Builder Integration**

* Native Gutenberg block with live server-side preview
* Native Elementor widget with real-time rendering in the builder
* Shortcode support for WPBakery, Divi, Beaver Builder, and any theme
* Works in widgets and custom HTML blocks

**Gallery Management**

* Drag-and-drop image reordering
* Bulk image selection with Shift+Click
* Individual image editor for titles, descriptions, links, and filters
* Optimized saving for galleries with hundreds of images

= Premium Features =

The [premium version](https://awplife.com/wordpress-plugins/portfolio-filter-gallery-wordpress-plugin/) adds advanced gallery tools for professional use:

**Advanced Features**

* URL-based filtering to link directly to a specific category view
* Set a default filter so the gallery opens with a pre-selected category
* Multi-select filtering with AND/OR logic for complex category combinations
* Hierarchical parent-child filter structures
* Dropdown-style filter menus as an alternative to buttons
* Live search bar within galleries

**Layout and Design**

* Six filter button styles: Buttons, Pills, Minimal, Outline, Underline, and Flat
* Multiple hover effects including Zoom, Fade, Slide Up, and Blur
* Sidebar layout with filters displayed in a vertical panel
* Responsive column control with separate settings for desktop, tablet, and mobile
* Custom thumbnail dimensions
* Unlimited color schemes for filter buttons
* Card layout with title below the image

**Content Features**

* Ascending and descending sort controls
* Shuffle button for randomized display order
* Image watermark overlay for copyright protection
* Pagination and load more for large galleries
* Lightbox with navigation, captions, and deep linking

= How to Set Up Your Gallery =

1. Go to **Portfolio Gallery** in your WordPress admin menu and click **Filters**
2. Add the filter categories you need, such as "Web Design", "Photography", or "Branding"
3. Click **Add New** under Portfolio Gallery to create a new gallery
4. Upload your images, enter titles and descriptions, and assign filters to each item
5. Configure your layout, column count, hover effects, and colors in the gallery settings
6. Publish the gallery and add it to any page using the Gutenberg block, Elementor widget, or shortcode

The shortcode format is:
`[Portfolio_Gallery id="123"]`

Replace 123 with the ID shown in your gallery editor.

== Screenshots ==

1. 3 column layout with numbering and titles
2. Full width without spacing
3. 2 column layout
4. Grayscale hover effect on thumbnails
5. Masonry layout
6. Adding filter categories 
7. Filtering images by category
8. Gallery editor with image upload area and shortcode
9. Settings panel

== Installation ==

**Install from WordPress Dashboard**

1. Go to your WordPress Dashboard, then Plugins, then Add New
2. Search for "Portfolio Filter Gallery"
3. Click "Install Now" and then "Activate"

**Manual Installation**

1. Download the plugin ZIP file from WordPress.org
2. Upload the `portfolio-filter-gallery` folder to `/wp-content/plugins/`
3. Go to the Plugins page in your WordPress dashboard and activate it

**After Activation**

1. Navigate to Portfolio Gallery and click Filters to create your filter categories
2. Click Add New under Portfolio Gallery to create your first gallery
3. Upload images, fill in titles and descriptions, and assign filters
4. Set your preferred layout, column count, and colors
5. Add the gallery to any page using the Gutenberg block, Elementor widget, or shortcode

== Frequently Asked Questions ==

= Is this gallery plugin free to use? =

Yes. The free version includes everything you need to create filterable image galleries with masonry and grid layouts, video embedding, and page builder integration. A [premium version](https://awplife.com/wordpress-plugins/portfolio-filter-gallery-wordpress-plugin/) is available for users who need advanced features like multi-select filtering, search, watermarks, and additional hover effects.

= How do I add the gallery to a page? =

You have three options. In the Gutenberg block editor, search for "Portfolio Filter Gallery" in the block inserter and select your gallery. In Elementor, drag the Portfolio Filter Gallery widget into your layout. For other editors, copy the shortcode from your gallery and paste it into any text block.

= How do I create and manage filters? =

Go to Portfolio Gallery then Filters in your WordPress dashboard. This page lets you add, edit, reorder, and delete filter categories independently from your galleries. Once created, you can assign any filter to any image across all your galleries.

= Can I add YouTube and Vimeo videos to the gallery? =

Yes. When adding a gallery item, choose the video option and enter the YouTube or Vimeo URL. Videos appear as thumbnails in the gallery and open via external links when clicked. You can see a working example on the [video gallery demo page](https://awplife.com/demo/portfolio-filter-gallery-premium/portfolio-video-gallery/).

= Does the gallery work on mobile devices? =

Yes. All gallery layouts are fully responsive and adapt to phones, tablets, and desktops. The masonry and grid layouts reflow automatically based on screen width, and filter buttons remain accessible on touch screens.

= Is there a limit to how many images I can add? =

No. You can add as many images and videos as your hosting allows. The plugin is optimized for large galleries with chunked saving to handle hundreds of items reliably.

= Can I use multiple galleries on the same page? =

Yes. Each gallery generates its own shortcode and operates independently. Filters, settings, and layouts are unique to each gallery instance.

= Can I reorder images after uploading? =

Yes. The gallery editor supports drag-and-drop reordering. You can also use Shift+Click to select multiple images and move them together.

= Does it work with the Gutenberg block editor? =

Yes. Version 2.2.0 introduced a native Gutenberg block. You can search for it in the block inserter, select your gallery, and see a live server-side preview directly in the editor.

= Does it work with Elementor? =

Yes. Version 2.2.0 added a native Elementor widget. You can drag it from the widget panel, choose a gallery, and the preview renders live inside the Elementor builder canvas.

= Does it work with other page builders? =

Yes. For WPBakery, Divi, Beaver Builder, and other page builders, paste the gallery shortcode into any text, HTML, or shortcode block.

= Is the plugin GDPR compliant? =

Yes. Portfolio Filter Gallery does not collect any user data, does not use cookies, and does not make external requests. All plugin assets load from your own WordPress installation.

= Does it support translation? =

Yes. The plugin is fully translation-ready with a standard text domain. It works with WPML, Polylang, Loco Translate, and other translation tools.

= Where can I get help if something is not working? =

Visit the [WordPress Support Forum](https://wordpress.org/support/plugin/portfolio-filter-gallery/) for community help. The development team monitors the forum and typically responds within one business day. Premium users can access priority support through the [developer website](https://awplife.com/wordpress-plugins/portfolio-filter-gallery-wordpress-plugin/).

== Changelog ==

= 2.2.0 =
* Date: 16 July, 2026
* Added: Native Gutenberg block with live server-side rendering in the block editor.
* Added: Native Elementor widget with real-time gallery preview inside the builder.
* Added: Optional per-page overrides for columns, hover effects, and filter visibility in both block and widget.
* Fixed: Data loss issue when reordering large galleries with pagination active. The full order list is now serialized as a JSON string to work within PHP max_input_vars limits.
* Improved: Gallery save performance for large collections by increasing the AJAX chunk size from 50 to 250.
* Improved: Reduced AJAX payload size by converting uploader endpoints to JSON-serialized parameters.
* Improved: Smarter form submit routing that automatically selects the best save method based on gallery size.

= 2.1.9 =
* Date: 07 July, 2026
* Added: Image numbering badge feature.
* Added: Sticky publish/update button for easier saving.
* Fixed: Gallery saving method and settings persistence.

= 2.1.8 =
* Date: 27 June, 2026
* Added: Right Click Protection integration in individual gallery Layout settings.
* Added: Right Click Protection details in documentation page.
* Improved: Version bump to 2.1.8.

= 2.1.7 =
* Date: 2 June, 2026
* Perfectly working with new WordPress version 7.0
* filter bug fixed in gallery.

= 2.1.6 =
* Added: Bulk selection capability using "Shift + Click" for faster image management.
* Improved: Image gallery loading sequence to prevent layout shifts.
* Optimized: Filter button responsiveness on mobile devices.

= 2.1.5 =
* Added: Dual action overlay buttons (Link + Lightbox view) for gallery items.
* Fixed: Lightbox missing description issue and restored support for line breaks in text.
* Fixed: Issue where images reverted to "External Link".
* Fixed: Filter category disappearing/removing bug when unchecked in gallery settings.

= 2.1.4 =
* Fixed: Support for external links in images.
* Fixed: Advanced columns controls for responsive grid/masonry layouts.
* Fixed: Filter button colors settings (primary, active, text colors).
* Fixed: Lightbox content mapping for title and description.
* Fixed: Lightbox description properly mapping to the gallery wrapper data attribute.

= 2.1.3 =
* Added: Enable/Disable Lightbox toggle setting in individual gallery meta boxes.
* Improved: Pro Banner design in filter and settings pages.
* Fixed: Lightbox setting mapping in schema for proper saving/retrieval.

= 2.1.2 =
* Fixed: JavaScript error on image edit modal (undefined variable).
* Fixed: escapeHtml scope issue causing save failure in modal editor.
* Security: Hardened all dynamic DOM insertions with output escaping in admin JS.
* Removed: Deprecated layout options and unused repair feature.
* Code cleanup and minor bug fixes.

= 2.1.1 =
* Compliance: Removed Pro Features admin menu page and all associated upsell/gating UI.
* Compliance: Removed built-in lightbox to conform with free-only restrictions.
* Compliance: Removed all premium WooCommerce integrations.
* Compliance: Removed documentation for features not present in this release.

= 2.1.0 =
* Removed: Custom CSS textarea (WordPress has a built-in CSS editor in the Customizer)
* Removed: Unused Bootstrap JS/CSS files (not enqueued, legacy only)
* Removed: Unused bs5-lightbox files (index.bundle.min.js, boot.css)
* Removed: Remote placeholder.com URL references
* Fixed: Inline style tag in Pro Features page moved to properly enqueued CSS file
* Added: Third-party library source documentation in readme
* Compliance: Resolved all WordPress.org Plugin Directory review issues

= 2.0.8 =
* Security: Comprehensive security audit with nonce verification, input sanitization, and output escaping across all files
* Security: Replaced deprecated unlink() with wp_delete_file(), date() with gmdate()
* Fixed: Added translators comments for all translatable strings with placeholders
* Fixed: Unordered sprintf placeholders corrected
* Removed: Pro feature indicators from free version UI (Fancybox/PhotoSwipe in settings)
* Removed: All upsell banners, cards, and marketing content from free version
* Improved: WordPress.org Plugin Check compliance
* Fixed: Gallery items with deleted media attachments no longer show broken images on frontend
* Added: Grid Aspect Ratio setting (Pro feature) - visible in admin with Pro badge

= 2.0.7 =
* Fixed: New images added to existing galleries disappearing on update

= 2.0.6 =
* Fixed: Description text color now uses caption color setting instead of hardcoded value
* Fixed: Masonry columns now display horizontally instead of vertically

= 2.0.5 =
* Fixed: Legacy migration now correctly extracts alt text, descriptions, and links
* Fixed: External link images now properly set Link Type to "Link to External URL" after migration
* Improved: Re-migration functionality to repair galleries with missing data

= 2.0.4 =
* Added: LD Lightbox is now filter-aware - lightbox only shows visible (filtered) images
* Improved: All lightbox libraries (Fancybox, PhotoSwipe, LD Lightbox) now respect active filters
* Improved: Lightbox navigation correctly shows "Image X of Y" based on filtered count

= 2.0.3 =
* Added: Comprehensive documentation page with sidebar navigation
* Added: Both free and premium versions can now be active simultaneously (premium takes priority)
* Improved: Premium detection system for seamless upgrades
* Fixed: Function conflicts when both versions active

= 2.0.2 =
* Added: Filter multiple languages support
* Added: Search Placeholder field in gallery settings
* Fixed: Show Title toggle not saving when OFF
* Fixed: Columns/Gap settings preserved on template change

= 2.0.1 =
* Bug Fixed

= 2.0.0 =
**Major Update - Complete Redesign**

This is a major update with a completely redesigned interface. Your existing galleries and data will be automatically migrated and preserved.

* New: Completely redesigned admin interface with modern UI
* New: Enhanced image management with drag-and-drop ordering
* New: Improved modal editor for individual image settings
* New: Bulk selection and batch operations
* New: Filter hierarchy support with parent-child relationships
* New: Multiple lightbox options (LD Lightbox, Bootstrap Lightbox)
* New: Enhanced migration system for legacy data
* New: Version tracking for future upgrade logic
* Improved: Better PHP 8.x compatibility with strict type handling
* Improved: Performance optimizations for large galleries
* Fixed: Sanitize_title error with legacy filter data stored as arrays
* Fixed: Filter count migration from legacy versions
* Fixed: Version conflict handling when both Free and Premium active

= 1.7.5 =
* Text domain error fixed.
* Tested with WordPress version 6.9

== Other Notes ==

= Browser Support =

Portfolio Filter Gallery is tested and works on all modern browsers:
* Google Chrome
* Mozilla Firefox
* Apple Safari
* Microsoft Edge
* Opera
* Mobile Safari on iOS
* Chrome and other browsers on Android

= Privacy and Security =

* Fully GDPR compliant with no data collection or external requests
* All assets are served locally from your WordPress installation
* Code follows WordPress coding standards with proper sanitization and escaping
* Regular security updates and compatibility testing with new WordPress releases

= Getting Help =

* [WordPress Support Forum](https://wordpress.org/support/plugin/portfolio-filter-gallery/)
* [Premium Support and Documentation](https://awplife.com/wordpress-plugins/portfolio-filter-gallery-wordpress-plugin/)
* [Video Tutorials on YouTube](https://www.youtube.com/watch?v=6rvJ9NN_kA0)

= Third-Party Libraries =

This plugin uses standard WordPress libraries. No external third-party libraries are bundled.

== Upgrade Notice ==

= 2.2.0 =
Recommended update. Adds native Gutenberg block and Elementor widget with live editor previews. Fixes a data loss issue when reordering large galleries and improves save performance.

= 2.1.9 =
Recommended update. Added image numbering badge and sticky save button.

= 2.1.8 =
Recommended update. Added Right Click Protection integration in Layout settings and documented it in Docs.

= 2.1.4 =
Bug fix release. Fixed an issue where the lightbox description was not displaying when enabled.

= 2.1.2 =
Bug fix release. Fixed JavaScript errors in the image editor modal and improved admin JS security.

= 2.1.0 =
Compliance update. Removed custom CSS insertion, removed unused Bootstrap/lightbox files, removed remote file calls, fixed inline styles. Resolves all WordPress.org Plugin Directory review issues.

= 2.0.0 =
Major update with redesigned admin UI. Existing galleries are automatically migrated. Backup recommended before updating.