Visual Portfolio, Photo Gallery & Post Grid


Gallery & Portfolio Plugin For WordPress

Portfolio websites are the most popular nowadays. We created Visual Portfolio, Photo Gallery & Post Grid WordPress plugin, to help every creative, agency, and photographers get access to the powerful tools they need to showcase their beautiful works and attract more love from their potential and existing customers.

See Live Demo | Documentation | GitHub

Create beautiful, clean, and powerful photo galleries and portfolio layouts using the Visual Portfolio gallery plugin. It is easy for simple photo galleries, but powerful enough for professionals. Whether you’re a photographer, agency, or anything in between, Visual Portfolio will boost your online presence.

🏆 Visual Gallery Builder

Build your portfolio and gallery blocks with no coding knowledge. Thanks to Gutenberg page builder you are able to create and customize galleries visually.

Convenient visual block editor with support to various layouts such as Masonry, Justified, Tiles, Grid, Slider and Carousel. A well thought out design, powerful features, and years of development by the nK team make Visual Portfolio a game-changing Portfolio and Gallery plugin that will level the WordPress showcases playing field in your favor to help increase visitors engagement.

🚀 Optimized to be Fast as Native

Despite the rich functionality, the Visual Portfolio is optimized as much as possible, to be fast and lightweight.

Due to the modular code structure, all scripts and styles are loaded only when they are needed for the current page that displays your gallery. So, your pages will never load unused features.

Pictures are not loaded in the main thread due to lazy loading. Moreover, our plugin is compatible with third-party WebP providers and image optimization plugins.

Smart adaptive image sizes fully supported in any gallery, created with Visual Portfolio plugin.

📱 Layouts

Our gallery plugin shipped with popular layouts such as Masonry and Justified (Flickr). Every feature optimized and works seamlessly with all of these layouts, you just need to set up and go with no headache. See it in action:

🎨 Prebuilt Skins

Showcase your projects ang gallery images with clean and beautiful skins. See it in action:

⚙️ Easy to Customize

The gallery block with live preview includes a lot of design settings that are point-and-click, no coding knowledge required. If you’re a bit more adventurous, the custom CSS module and PHP filters are set up to be easily used by developers.

📁 Portfolio Post Type

Optional custom post type portfolio will ensure all your portfolios to keep in a single post type. In this way, you can distinguish your portfolios from other post types. Taxonomies are used to categorize your portfolio types, it will help you to group and sort your portfolios. Moreover, you can use these portfolios as a source for your showcase gallery using Visual Portfolio block.

Customize and rename Portfolio archive templates using visual gallery and page builder

In case you want to use Visual Portfolio plugin for photo gallery only you can disable custom post type registration.

💎 Posts Query Builder

Fine-tune the source of your galleries. Display posts, portfolios, and any other post types, filter by taxonomies, author, and date ranges, include or exclude specific posts, and much more options.

🖼️ Photo Galleries

Create galleries using image sets right inside block editor, just drop your images and the gallery is ready. You can create unlimited galleries with different styles, there is no limitation.

⚡ Powerful Lightbox

Visual Portfolio uses only modern solutions, and lightboxes are not an exception. High performance, mobile optimization, retina-ready, and a wide range of features available in Fancybox and PhotoSwipe plugins, that you can choose for your gallery lightboxes.

Mobile Optimized
Looks great on every device. Swipe to navigate, spread/pinch to zoom in/out supported on touch devices.

GPU Accelerated
Hardware accelerated animations for better performance and seamless user experience.

Smart Loading
Gallery images are responsive and loaded progressively using lazy loading on demand.

Social Sharing
You can allow users to share photos on Facebook, Twitter, and Pinterest with social sharing buttons.

📹 Video and 🎵 Audio Support

Visual Portfolio plugin allows you to work with audios and videos within a single gallery. You just need to copy the URL of the video or audio and it will work automatically in the popup gallery. The full list with supported vendors see below (mostly thanks to the Pro plugin).

Supported Video Vendors:

  • Youtube
  • Vimeo
  • IGTV (Instagram)
  • TikTok
  • Twitch
  • Facebook Video
  • DailyMotion
  • Wistia
  • VideoPress
  • TED
  • Rutube
  • Metacafe
  • Coub
  • Self Hosted Video

Supported Audio Vendors:

  • Spotify
  • SoundCloud
  • Mixcloud
  • Beatport
  • Self Hosted Audio

📈 SEO-Friendly

Visual Portfolio plugin is built keeping SEO and performance in mind by defining proper structure and tags. Furthermore, due to optimization, it is lightweight and fast when it comes to page load.

In addition our plugin add images in the sitemap for All In One SEO, Rank Math, and Yoast SEO plugins

🏳️ Multilingual & Translation Ready

Visual Portfolio adds a new layer of compatibility for WPML. All blocks are compatible with it and ready for translation.

🛠 Built For Developers

Visual Portfolio gives you a wide range of filters and actions to customize every part of your gallery. Also, it allows you to overwrite templates and change it in the theme directory. Moreover, you can customize separate portfolio lists using custom CSS and CSS Variables.

🔥 Visual Portfolio Pro

The Visual Portfolio plugin is also available in a professional version which includes more features and enhanced performance! Learn more about Visual Portfolio Pro

In order to maintain the free version of the plugin on an ongoing basis, and to provide quick and effective support for free, we offer a Pro version of the plugin. The Pro version allows you to:

  • Advanced Skin Settings

    • Image Filters and Blend Mode – apply Instagram-like filters on images for Normal and Hover states
    • Transformations – control the image transformation and border radius for Normal and Hover states
    • Typography – control every text part of gallery captions and overlays
    • Dimensions – controls paddings, margins and border radius of captions and overlays
  • Stylish Interaction Effects

  • Social Feeds
    Automatically fetch posts from your social networks to display in gallery on your site.

  • Theft Protection

    • Watermarks – add your logo on top of your images to make them harder to steal
    • Password Form – add a password to gallery blocks and send it to your clients
    • Age Gate – Protect visitors from viewing adult content
  • Photos Proofing
    Communicate with your clients in a modern way:

    1. Create Proofing Gallery – Easily create a gallery with photos, as you did before. Change styling, layout, etc. if you want.
    2. Send to a Client – Send photos collection to your client for proofing. The client will be able to leave comments on individual photos and communicate with you.
    3. Get Approval – Once the client approves the selection, you will be able to see the selected photos and copy filenames for post-production.
  • Advanced Click Actions
    Manually configure how to open specific item types and filter clicking on title or on image.

  • Responsive Breakpoints Settings
    Manually control the screen sizes, which used by the automatic responsive function to adapt your gallery layouts.

  • AJAX Improvements
    Requests properly cached and links preloaded before you click.

  • Advanced Query Settings
    Filter by Author, Date Range, Ignore Sticky Posts, exclude posts without Featured Image, and much more…

  • Quick View for Posts and Pages
    Display posts and pages in popup iframe, not only image and video galleries. It’s like works preview in Dribbble and Behance, but on your own site.

  • Popup Gallery Deep Linking
    Makes URL automatically change when you open popup and you can easily link to a specific popup image.

  • White Label
    Possibility to use your brand name and logo instead of our “Visual Portfolio”.

Find much more portfolio and gallery features of Visual Portfolio Pro today!

🌟 More Features

  • Lightboxes for Standard WordPress Images
    Image lightbox available for Visual Portfolio galleries as well as for standard WordPress images and galleries in your content.

  • AJAX Loading and Pagination
    Every dynamic part of the Visual Portfolio plugin is using AJAX to update the gallery content in live mode.
    Organized galleries and portfolio lists will make your website look more professional, easy to navigate and result in a better user experience. We prepared 3 types of paginations for you:

    • Infinite Scroll
    • Load More button
    • Paged pagination
  • Filter
    Filter your gallery and portfolio by taxonomies (mostly categories and tags). Let users select a category and see the relevant items.

  • Sort gallery items by date and title
    Users may sort gallery items by date and title.

  • GIFs Support
    Our plugin automatically displays the animated GIFs in photo galleries. Also, you can show the animated GIFs on mouseover with the Pro plugin.

  • Items Gutters
    Manually adjust the spacing between gallery images and projects.

  • Images Lazy Loading
    Images lazy loading boost your page loading speed. You don’t need to worry about it, just use your beautiful images in the gallery, Visual Portfolio will do all the work for you.

  • Images Aspect Ratio
    All built-in gallery layouts support custom image aspect ratio. You don’t need to crop the image manually.

  • Images Focal Point
    Sometimes it is very important to specify the focal point so that the custom aspect ratio does not cut off important parts of the photos. For example, people’s faces on the portrait photos.

  • Custom Links for Gallery Images
    By default, gallery images will contain the links to original images. You can manually set the custom links, for example, to a website or Youtube video.

  • RTL Support
    Visual Portfolio natively supports RTL languages, proper styles loaded automatically, without user interaction.

  • Elementor and WPBakery Page Builder support
    There is a helpful widget for Elementor and shortcode for WPBakery Page Builder, which will let you select one of the available Saved Layouts and output it.

  • Responsive and Mobile Ready
    Visual Portfolio and Galleries are completely responsive and mobile ready – layouts automagically transforms to display perfectly on your screen size.

  • Custom CSS
    Deeply customize the look of your gallery using custom CSS and CSS Variables.

  • … And Much More
    All available features you can find on the plugin’s site and documentation.


  • Gutenberg Blocks
  • Gutenberg Block Settings
  • Projects Admin


Automatic installation

Automatic installation is the easiest option as WordPress handles the file transfers itself and you don’t need to leave your web browser. To do an automatic install of Visual Portfolio, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New.

In the search field type “Visual Portfolio” and click Search Plugins. Once you’ve found our plugin you can view details about it such as the point release, rating and description. Most importantly of course, you can install it by simply clicking “Install Now”.

Manual installation

The manual installation method involves downloading our Visual Portfolio plugin and uploading it to your webserver via your favourite FTP application. The WordPress codex contains instructions on how to do this here.


Does Visual Portfolio has documentation?

Yes, our plugin has documentation to easily get started with galleries. Read it here – Visual Portfolio Documentation

What themes does Visual Portfolio support?

Visual Portfolio has been tested with many WordPress themes and supports all major WordPress themes. Since we follow WordPress’ plugin development guidelines, you can rest assured that Visual Portfolio galleries will work perfectly, no matter what theme you use. If you’ve installed Visual Portfolio and are facing issues, it might not be because of a theme incompatibility. Please get in touch with the support team by opening a support ticket in our support forum, and we will fix it for you.

Do I have to remove other Gallery and Portfolio plugins if I install Visual Portfolio?

That is recommended. Visual Portfolio is designed to be an all in one Gallery and Portfolio plugin. If you use other Gallery plugins with Visual Portfolio on your website, not only will the performance of your website be negatively affected, but both plugins working together can produce unexpected conflicts or errors.

Are the galleries mobile friendly?

Yes, Visual Portfolio built with mobile optimization in mind. It will automatically fit your screen size, so you don’t need to worry about. Furthermore, we prepared lazy loading, which significantly increases page loading speed. Before making a decision, just check by yourself how Visual Portfolio works on mobile devices.

Can I upload multiple images at once?

Yes, you can batch upload entire photo galleries at one time thanks to WordPress media library functionality.

Is there pagination for photo galleries?

Yes, you can use 3 type of pagination when displaying photo galleries or posts. Choose the number of photos to display and select Paged, Load More or Infinite Loading pagination. Examples with all gallery pagination types are available on the Visual Portfolio website.

Can I filter images and projects by categories?

Yes, our plugin has built in support for AJAX Filter by items categories. See a couple of examples:

Can I add an external links to galleries?

Yes, you can add external links to your gallery items.

Is Visual Portfolio developers friendly?

Yes, we prepared a lot of filters and actions for developers, so you can easily extend default functionality for your need. Read here more info for developers.

Is Visual Portfolio translation ready?

Yes, Visual Portfolio has full translation and localization support via the visual-portfolio textdomain. To submit a translation, see

More Information

For more information, feel free to visit Visual Portfolio official website.


7 ខែ​កក្កដា, 2024
Well, I only use the free version because I don’t need much. But it does the essential things very well. Many thanks for that!
16 ខែ​មិថុនា, 2024
It perfectly meets my expectations.
31 ខែ​ឧសភា, 2024
This plugin is quite excellent, having a very flexible feature set. I also appreciate that support has been prompt and very helpful in helping me customize various components.
29 ខែ​ឧសភា, 2024
Have been using it for a few months now (the free version) and it works great. I added a bit of custom CSS to style the archive page and I’m very happy with it.
Read all 282 reviews

Contributors & Developers

“Visual Portfolio, Photo Gallery & Post Grid” is open source software. The following people have contributed to this plugin.


“Visual Portfolio, Photo Gallery & Post Grid” has been translated into 3 locales. Thank you to the translators for their contributions.

Translate “Visual Portfolio, Photo Gallery & Post Grid” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


3.3.9 – Jul 17, 2024

  • fixed Sort by Date option not working correctly
  • fixed PHP warning when image was removed from Media library but still exists in the gallery
  • fixed WPRocket delay JS conflict with lazyloading

3.3.8 – May 29, 2024

  • Pro:
  • fixed click action on gallery items with a custom URL in saved layouts

3.3.7 – May 27, 2024

  • fixed displaying date on gallery items
  • fixed gallery images resets data in saved layouts

3.3.6 – May 16, 2024

  • fixed DESC order for “Manual” and “Rand” image orders
  • rename “Default” order to “Manual”
  • Pro:
  • fixed Hover CSS Filter styles loading if there is no Default CSS Filter provided
  • fixed custom image URL in the gallery, applied from the first item to all other items

3.3.5 – May 15, 2024

  • fixed PHP warning from array_key_exists function
  • fixed wrong attribute output for select control with bool value
  • fixed gallery sorting algorithm, now it should work correctly

3.3.4 – May 11, 2024

  • fixed dynamic selector block options rendering on the frontend.

3.3.3 – May 11, 2024

  • fixed custom title tag XSS vulnerability (properly escape the custom tag and prevent using non-predefined values)

3.3.2 – Apr 30, 2024

  • add more sort options in image galleries: Item Title, Item Description, Image Title, Image Description, Image Caption, Image Alt
  • improved image gallery sort code – images with empty field will be always placed after items with non-empty field
  • fixed the behavior of the “All” filters link when the portfolio archive page set as the home page
  • Pro:
  • fixed Skin typography settings error in WP 6.5
  • fixed image gallery non-working Hover and Custom Popup settings when you change it
  • fixed horizontal thumbnails displaying in Fancybox
  • fixed displaying Pro plugin settings opacity

3.3.1 – Mar 13, 2024

  • added support for Download button in PhotoSwipe
  • added Horizontal Order option to Masonry layout
  • added support for lazy loading inside AJAX callbacks
  • added support for WooCommerce images lazy loading
  • improved block gallery images in editor – allow selecting images with shift key pressed
  • changed Justified Row Height option minimum threshold to 20
  • fixed gallery images in block editor Uncategorized filter
  • fixed image blinking after filter in Masonry, Tiles and Grid layouts
  • removed stagger delay from Masonry, Tiles and Grid layouts because it is not working properly in large galleries
  • minor improvements
  • Pro:
  • fixed Overlay Under Image option in Emerge and Caption Move styles

3.2.4 – Feb 26, 2024

  • added stagger delay for Masonry, Grid and Tiles layouts
  • added proper horizontal order for Masonry layout
  • added possibility to edit gallery images in bulk
  • added gallery images filter by category in editor
  • fixed Portfolio menu item name change when on Taxonomy archive page
  • fixed duplicating Portfolio page after WordPress XML file import
  • Pro:
  • added Twitch avatar caching to fix missing link
  • added possibility to add any block on Proofing pages
  • fixed Grid vertical align option
  • minor fixes

3.2.3 – Dec 12, 2023

  • fixed displaying editor block when creating new Saved Layout

3.2.2 – Nov 29, 2023

  • added support for asset file change time when enqueue without .asset.php – better support for caching plugins
  • fixed Elementor preview stopped working

3.2.1 – Nov 29, 2023

  • fixed Pro plugin path and url detection – now it should work correctly when Free plugin is removed
  • fixed sitemap fatal error

3.2.0 – Nov 25, 2023

  • added support for proper SEO meta URLs in Portfolio archives and Filtered pages in Yoast SEO, AIOSEO, Rank Math
  • added Skin option to change item title tag
  • added vpf_extend_posts_source filter
  • added check for image existence when resave the gallery from the popup
  • added check for caption is empty and don’t print the figcaption
  • added support for new Ghost Kit extensions
  • updated blocks apiVersion to 3 to allow iframe usage in editor
  • fixed PHP 8.* warning
  • fixed lazy loading script styles added event when 3rd-party lazy loading used
  • fixed lazy loading without srcset
  • fixed lazy loading placeholder displaying when used Hover image
  • fixed width calculation for lazy loading and picture tag
  • fixed lazysizes script version number
  • fixed lazy loading conflict with WP Rocket Delay JS setting
  • fixed typo in DONOTCACHEOBJECT constant
  • fixed featured image focal point control conflict in WP 6.3
  • fixed Grid layout preview JS error in editor
  • simplified lazy loading placeholder animation
  • changed lazy loading styles to use modern :has() CSS (with fallback for old browsers)
  • removed jQuery usage from lazy loading script
  • Pro:
  • IMPORTANT: changed the Pro plugin to standalone, which is not requires the Free version installed anymore
  • added Setup Wizard support to all Social Account controls
  • fixed Share URL and paged gallery wrong URL
  • fixed mime detection for images in Flickr social feeds
  • fixed init conditionize script once opened Social settings panel

3.1.3 – Jul 1, 2023

  • improved PhotoSwipe popup zoom for large vertical images
  • changed ‘Projects’ CPT label to portfolio page name
  • changed images and overlay border-radius to clip-path (better performance)
  • fixed unexpected JS error when Sortable control have an undefined value (happens in Advanced Click Action for a single user after migration from older plugin version)

3.1.2 – Jun 6, 2023

  • renamed Portfolio Items to Projects
  • fixed playing videos in background in PhotoSwipe
  • fixed portfolio archive hidden pagination in some cases
  • fixed portfolio archive friendly URL in load more button
  • fixed portfolio archive filter and sort paged URLs

3.1.1 – May 17, 2023

  • fixed Archive mapping PHP notice when no Archive Page ID available
  • renamed Carousel to Slider

3.1.0 – May 12, 2023

  • added support for gradients in overlay backgrounds
  • added Restore Focus setting to the Popup gallery
  • added support for GET variables vp_page, vp_filter, vp_sort, vp_search in canonical and short links
  • added PHP filter vpf_global_data
  • changed CSS to use Gap instead of hack with margins
  • changed popup data <div> to <template>. We need this change for 3 reasons:
    • prevent popup data from indexing
    • prevent a lot of not needed content rendering
    • in some cases this content causes bugs with layout styles
  • changed default popup title and description source for Posts content. Use Image title and description, and not the post title and content
  • changed overlay displaying from focus to focus-visible
  • fixed Popup data displaying even when Click Action is URL
  • fixed transition caption transition CSS variable name in the Classic skin
  • fixed Skin editor error on WP 6.0 because of using NavigatorToParentButton component
  • fixed Select control dropdown is not visible in editor when opened popup

v3 Migration Guide –

3.0.0 – Apr 13, 2023

  • completely reworked Skin options and some UI elements of block controls this helped us to structure deep Skin customizations such as:
    • Typography control
    • Dimensions control (overlay padding, caption items gap, etc)
    • Blend Mode for overlay
    • Image transform for normal and hover states
    • Image border radius for normal and hover states
  • changed the structure of Skin templates – use classes and CSS variables with overlay and caption names where appropriate
  • added caption support for popup in video items
  • improved controls dynamic CSS rendering – merge all styles with same selector with better formatting
  • improved filter and pagination URLs to friendly on portfolio archive page (good for SEO)
  • updated Swiper to v8.4.7
  • changed template styles version – use dynamic value based on filemtime function return
  • fixed portfolio category archives redirect when portfolio archive set as Front Page
  • fixed pagination on portfolio taxonomy archive pages
  • fixed canonical tags usage on portfolio category archives (fixes problems with SEO)
  • fixed wrong Current Query generated when changed Portfolio on Front Page setting
  • fixed Slider dynamic items height with Classic Style wrong items width
  • fixed Slider dynamic items height with FireFox wrong items width
  • fixed Slider items height incorrect size when used Items Height and Minimal Height options
  • fixed conflict with Elementor new Swiper library (added in Elementor v3.11.0)
  • fixed Elementor double lightbox on the pages, which does not use the Elementor page builder
  • removed hardcoded CSS for popup top position based on admin bar height, use --wp-admin--admin-bar--height variable instead
  • fixed error when using an array in control sanitize_callback (only in custom user controls)
  • renamed Items Style Skin
  • renamed Items Click Action Click Action
  • new hooks for developers:
    • added more data to vpf.editor.controls-render-inner-data JS filter
    • PHP vpf_register_block_attribute_data
    • PHP vpf_register_block_attributes
    • PHP vpf_items_style_builtin_controls
    • PHP vpf_pagination_item_data
    • PHP vpf_controls_dynamic_css_value
    • PHP vpf_controls_dynamic_css_styles_array
    • JS vpf.editor.controls-dynamic-css-value
    • JS vpf.editor.controls-dynamic-css-styles-object
    • jQuery afterShowFancybox
  • minor changes

2.22.0 – Feb 12, 2023

  • added support for Youtube Shorts in popup
  • added possibility to start AJAX loading when already in loading state (fixes the Search module conflict with concurrent requests)
  • added support for displaying Portfolio Categories and Portfolio Tags in the post-terms block
  • fixed filter, sort and pagination URLs to display absolute URLs
  • fixed creating notices over on over again if no items found after AJAX requests
  • fixed deprecated Elementor warnings
  • fixed saving permalink error in WordPress 6.1
  • fixed src data: escaping in lazy load images
  • fixed minimal pagination active item wrong circle size
  • fixed Fly overlay z-index when add Hover Image from Pro plugin
  • fixed block crash in the Widgets and Templates editor
  • fixed go pro link error when no Visual Portfolio admin menu exists
  • changed defaults for popup title and description sources
  • removed white background from Fancybox popup for better support vertical videos
  • removed clipboard-polyfill and use native navigator.clipboard.writeText instead
  • minor changes

2.21.2 – Nov 25, 2022

  • fixed JS error when open WordPress images in Lightbox
  • fixed JS error when changing gallery image data

2.21.0 – Nov 24, 2022

  • added templates for popup data in /templates/popup/, so developers can override it now in the theme templates
  • added auto height to filter/sort dropdown
  • added support for HTML tags in the popup title
  • added groups for controls for better UI
  • added more steps in the block Setup Wizard
  • added Wide alignment to newly added blocks by default
  • added a notice for large galleries to use Infinite pagination for better performance
  • added Items Per Page limit and Infinite pagination to the gallery when user adds more than 40 images in the Setup Wizard
  • added support for align option in Filter and Sort shortcodes
  • added text_all attribute to Filter shortcode
  • improved shortcodes UI in Saved Layouts
  • changed default Infinite pagination threshold from 250px to 400px
  • fixed wrong popup image displaying when custom URL used
  • fixed post featured image focal point save error
  • fixed Elementor widget in Safari can’t select layout
  • fixed Jetpack lazy loading re-layout Masonry conflict
  • fixed displaying popup data in HTML when click action disabled
  • fixed duplicated portfolio page in Archive settings
  • fixed PHP warning when Editors open admin screen or when plugin first time active
  • fixed multiple select controls sanitize
  • fixed Go Pro link style conflict with 3rd-party URLs
  • minor changes and fixes

2.20.3 – Oct 3, 2022

  • fixed error when close popup gallery opened from the native gallery block
  • fixed focus current item in the native gallery block when closing popup gallery

2.20.2 – Sep 29, 2022

  • improved accessibility – focus gallery item in after closing popup
  • fixed images displaying in Slider with Classic style on Apple devices
  • fixed Jetpack lazy loading when new items loaded in Visual Portfolio gallery using pagination or filters
  • fixed displaying Read More button in Classic style, when all other meta disabled

2.20.1 – Sep 15, 2022

  • fixed 3rd-party lazy loading scripts add lazy attributes to noscript img tags
  • fixed noscript styles loading when used optimization plugins
  • fixed conflict with Elementor lightbox when used optimization plugins
  • fixed undefined author field usage

2.20.0 – Sep 6, 2022

  • !important – this update contains a lot of code rewrites regarding the security improvements, and some parts may not work as expected. Please, let us know as soon as possible, if something stopped working after this update. We have tested it in all our sites, but some rare cases may still stop working.
  • added code for data sanitization in places, where we missed it
  • added nonces usage to prevent possible hacker attacks
  • added support for Swiper duplicates images lazy loading in 3rd-party carousels
  • added Author to the Popup Title and Description sources
  • improved lazy loading script
    • prevent adding noscript when image does not have vp-lazyload class after processing (for example, when skipped from adding lazy loading)
    • prevent processing earlier if setting is disabled – faster code execution
    • restored missing noscript for lazy images inside Visual Portfolio galleries
  • fixed Settings tab URL if Portfolio Post Type disabled


  • fixed Classic style image displaying bug in slider with dynamic height option
  • fixed Color Picker error in custom Skins
  • fixed Swiper slides displaying conflicts, which comes from some 3rd-party plugins
  • minor changes


  • added stricter permission check for rest route update_layout
  • allow to call rest route get_layouts to all users, who can edit posts
  • added settings to exclude images from lazy loading by attribute
  • improved Gallery images selection – you can now select images without holding Ctrl/Shift keys
  • improved Gallery control – added pagination to prevent overwhelming block settings
  • improved Gallery control – added additional info to selected image popup (such as source file URL, file size, etc…)
  • improved Visual Portfolio admin menu styles by adding dividers
  • updated Swiper to the latest version 8.3.2
  • fixed popup gallery open if default prevented already (fixed conflict with slider Free Scroll)
  • fixed Slider text selection when trying to drag in the gap
  • fixed Slider displaying images in a row before Swiper init
  • fixed wrong popup gallery items parsing when Slider layout used
  • fixed images little “blink” effect when swipe Slider to the left
  • fixed Saved Layouts editor block control ‘NaN’ value when select an empty value
  • fixed Saved Layouts API reset meta data if you don’t provided all available attributes in your request
  • minor changes


  • added possibility to change items count on Portfolio archive page in the plugin settings
  • added portfolio archive page classes to the <body> tag
  • improved Gallery sortable component in block settings
  • improved Gallery component image popup in block settings to display Title and Description loaded dynamically from the Source settings
  • changed Gallery component Add Images button to Edit Gallery button. You are not allowed to insert duplicate photos in a single gallery
  • prevent closing multiple posts block option dropdown when selected value. Easier to select multiple posts from dropdown
  • fixed security vulnerability – rest call wrong permission check
  • fixed Taxonomy selector error with empty taxonomy
  • fixed displaying posts when empty Taxonomy selected in the query options
  • fixed some JS errors and warnings in the Gutenberg editor
  • removed custom meta settings from non-viewable post types
  • removed will-change styles usage
  • minor changes

Further changelog entries can be found in the file.