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.
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:
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.
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
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
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:
Create Proofing Gallery – Easily create a gallery with photos, as you did before. Change styling, layout, etc. if you want.
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.
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”.
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.
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:
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.
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
Free + Pro:
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
Free + Pro:
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
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 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
2.19.1
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
2.19.0
added stricter permission check for rest route update_layout
allow to call rest route get_layouts to all users, who can edit posts
improved enqueueing block assets and custom styles in FSE themes
fixed fallback for inline custom styles (some styles broke the code and cause an error)
fixed error with an archive portfolio page, when the server does not allow creating it and our code trying to create it again and again
fixed wrong CSS variable usage in sort dropdown
fixed Elementor lightbox conflict when load more items in Visual Portfolio galleries
fixed Elementor widget deprecation warning
fixed Elementor widget open settings when click on it in the editor
moved Elementor compatibility code to separate script, so when Elementor is not installed, this script is not loading
changed blocks to use API v2
dropped IE support
minor changes
2.15.6
tested with WordPress 5.9
added promo Youtube video in the plugin description on wordpress.org
added a quick check to create_slug function – if slug for some reason is empty, return the label. This function is used to create slugs categories, added in the image galleries.
added block previews when adding it to the Gutenberg editor
improved styles of the block setup wizard
improved styles of the welcome screen
improved styles of image settings popup
improved styles of Layout section in the block settings
improved styles of color picker component
improved styles of align control component
fixed classes tree displaying in the block custom CSS modal
2.15.5
fixed conflict with SG Optimizer lazy loading
fixed conflict with Architect page builder (added hacky fix for our inline styles)
fixed conflict with Avada lazy loading
fixed color picker styles in the latest Gutenberg
fixed slow loading of Gallery control in editor UI (now uses lazy loading)
2.15.4
added encoding for block custom CSS to prevent conflicts with Gutenberg attributes sanitization
added compatibility for standard galleries in WordPress 5.9
fixed Saved Layouts editor title click in WordPress 5.9
2.14.1
added justified options Max Rows Count and Last Row Align
fixed huge galleries with Justified layout crash on iOs devices
fixed popup styles conflict in BeTheme
2.14.0
IMPORTANT – there may be breaking changes for some of your galleries. Please, don’t forget to make a backup and test the plugin on a staging site before updating it on production
added possibility to display post title and content in the image lightboxes (select the sources in the click action settings)
added support for posters in video and audio popups (added automatically)
slightly improved performance, when using the Taxonomies option
changed required PHP version to 7.2
changed required WordPress version to 5.8
fixed conflict with WPML and Taxonomies option
fixed AJAX loading pagination with custom permalink “/index.php/%postname%”
fixed js error in the new widgets editor
fixed rare conflict with theme styles and our images figure tag
removed sessions usage for randomly ordered galleries. Better for cached pages with caching plugins. If you want to use the caching plugin and random option, you will need to disable caching for the page, where used this random gallery
Further changelog entries can be found in the CHANGELOG.md file.