{"id":3718,"date":"2025-02-15T16:49:03","date_gmt":"2025-02-15T16:49:03","guid":{"rendered":"https:\/\/s-o-s.net\/visual-portfolio-photo-gallery-post-grid\/"},"modified":"2025-02-15T16:49:03","modified_gmt":"2025-02-15T16:49:03","slug":"visual-portfolio-photo-gallery-post-grid","status":"publish","type":"post","link":"https:\/\/s-o-s.net\/en_gb\/visual-portfolio-photo-gallery-post-grid\/","title":{"rendered":"Visual Portfolio, Photo Gallery &#038; Post Grid"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<article id=\"post-74621\" class=\"alignwide post-74621 plugin type-plugin status-publish hentry plugin_tags-gallery plugin_tags-gallery-block plugin_tags-image-gallery plugin_tags-portfolio plugin_tags-wordpress-gallery-plugin plugin_category-customization plugin_category-media plugin_contributors-nko plugin_contributors-visualportfolio plugin_business_model-commercial plugin_committers-nko plugin_support_reps-fellan91\">\n<div class=\"plugin-banner\" id=\"plugin-banner-visual-portfolio\"><\/div>\n<header class=\"plugin-header\">\n<div class=\"entry-heading-container\">\n<div>\n<div class=\"entry-thumbnail\">\n\t\t\t\t\t<img decoding=\"async\" class=\"plugin-icon\" srcset=\"https:\/\/ps.w.org\/visual-portfolio\/assets\/icon-128x128.png?rev=2389881, https:\/\/ps.w.org\/visual-portfolio\/assets\/icon-256x256.png?rev=2389881 2x\" src=\"https:\/\/ps.w.org\/visual-portfolio\/assets\/icon-256x256.png?rev=2389881\" alt=\"\">\t\t\t\t<\/div>\n<div>\n<h1 class=\"plugin-title\">Visual Portfolio, Photo Gallery &amp; Post Grid<\/h1>\n<p>\t\t\t\t\t<span class=\"byline\">By <span class=\"author vcard\"><a target=\"_blank\" class=\"url fn n\" href=\"https:\/\/profiles.wordpress.org\/nko\/\" rel=\"noopener\">Nikita<\/a><\/span><\/span>\n\t\t\t\t<\/div>\n<\/p><\/div>\n<div class=\"plugin-actions\">\n<div class=\"wp-block-button is-small plugin-download download-button\"><a target=\"_blank\" class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/downloads.wordpress.org\/plugin\/visual-portfolio.3.3.12.zip\" rel=\"noopener\">Download<\/a><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/header>\n<p><!-- .entry-header --><\/p>\n<p>\t<span id=\"description\"><\/span><br \/>\n\t<span id=\"reviews\"><\/span><br \/>\n\t<span id=\"installation\"><\/span><br \/>\n\t<span id=\"developers\"><\/span><br \/>\n\t<span id=\"advanced\" class=\"\"><\/span><br \/>\n\t<span id=\"section-links\"><\/p>\n<ul class=\"tabs clear\">\n<li id=\"tablink-description\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/visual-portfolio\/#description\" rel=\"noopener\">Details<\/a><\/li>\n<li id=\"tablink-reviews\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/visual-portfolio\/#reviews\" rel=\"noopener\">Reviews<\/a><\/li>\n<li id=\"tablink-installation\">\n\t\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/visual-portfolio\/#installation\" rel=\"noopener\">Installation<\/a>\n\t\t\t<\/li>\n<li id=\"tablink-developers\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/visual-portfolio\/#developers\" rel=\"noopener\">Development<\/a><\/li>\n<\/ul>\n<div id=\"link-support\">\n\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/plugin\/visual-portfolio\/\" rel=\"noopener\">Support<\/a>\n\t\t<\/div>\n<p>\t<\/span><br \/>\n\t<script type=\"text\/javascript\">if ( '#changelog' == window.location.hash ) { window.setTimeout( function() { window.location.hash=\"#developers\"; }, 10 ); }<\/script><\/p>\n<div class=\"entry-content\">\n<div id=\"tab-description\" class=\"plugin-description section\">\n<h2 id=\"description-header\">Description<\/h2>\n<p><strong>Gallery &amp; Portfolio Plugin For WordPress<\/strong><br \/>\n\u2605\u2605\u2605\u2605\u2605<\/p>\n<p><strong>Portfolio websites are the most popular nowadays.<\/strong> We created <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=head\" rel=\"nofollow ugc noopener\"><strong>Visual Portfolio, Photo Gallery &amp; Post Grid WordPress plugin<\/strong><\/a>, 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.<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><\/p>\n<div class=\"responsive-embed responsive-embed-16x9 embed-youtube\"><iframe title=\"Visual Portfolio - The Modern WordPress Gallery Plugin\" width=\"1140\" height=\"641\" src=\"https:\/\/www.youtube.com\/embed\/354pybu91aQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<p><\/span><\/p>\n<p><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=head\" rel=\"nofollow ugc noopener\">See Live Demo<\/a> | <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/getting-started\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=head\" rel=\"nofollow ugc noopener\">Documentation<\/a> | <a target=\"_blank\" href=\"https:\/\/github.com\/nk-crew\/visual-portfolio\" rel=\"nofollow ugc noopener\">GitHub<\/a><\/p>\n<p>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\u2019re a photographer, agency, or anything in between, <strong>Visual Portfolio will boost your online presence<\/strong>.<\/p>\n<h3>\ud83c\udfc6 Visual Gallery Builder<\/h3>\n<p>Build your portfolio and gallery blocks with no coding knowledge. Thanks to Gutenberg page builder you are able to create and customize galleries visually.<\/p>\n<p>Convenient visual block editor with support to various layouts such as Masonry, Justified, Tiles, Grid, Slider and Carousel. A <strong>well thought out design, powerful features, and years of development<\/strong> 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.<\/p>\n<h3>\ud83d\ude80 Optimized to be Fast as Native<\/h3>\n<p>Despite the rich functionality, the Visual Portfolio is optimized as much as possible, to be fast and lightweight.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>Smart adaptive image sizes fully supported in any gallery, created with Visual Portfolio plugin.<\/p>\n<h3>\ud83d\udcf1 Layouts<\/h3>\n<p>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:<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/masonry-image-filters\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=layouts\" rel=\"nofollow ugc noopener\">Masonry Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/justified-tilt-effect\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=layouts\" rel=\"nofollow ugc noopener\">Justified (Flickr) Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/tiles-custom-color\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=layouts\" rel=\"nofollow ugc noopener\">Tiles Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/grid\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=layouts\" rel=\"nofollow ugc noopener\">Grid Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/slider\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=layouts\" rel=\"nofollow ugc noopener\">Slider Gallery<\/a> (Fade, Carousel, Coverflow)<\/li>\n<\/ul>\n<h3>\ud83c\udfa8 Prebuilt Skins<\/h3>\n<p>Showcase your projects ang gallery images with clean and beautiful skins. See it in action:<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/masonry\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=effects\" rel=\"nofollow ugc noopener\">Classic<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/tiles-paged-pagination\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=effects\" rel=\"nofollow ugc noopener\">Fade<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/masonry-infinite-scroll\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=effects\" rel=\"nofollow ugc noopener\">Emerge<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/tiles-popup-gallery\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=effects\" rel=\"nofollow ugc noopener\">Fly<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/masonry-caption-move\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=effects\" rel=\"nofollow ugc noopener\">Caption Move<\/a><\/li>\n<\/ul>\n<h3>\u2699\ufe0f Easy to Customize<\/h3>\n<p>The gallery block with live preview includes a lot of design settings that are point-and-click, no coding knowledge required. If you\u2019re a bit more adventurous, the custom CSS module and PHP filters are set up to be easily used by developers.<\/p>\n<h3>\ud83d\udcc1 Portfolio Post Type<\/h3>\n<p>Optional custom post type <code>portfolio<\/code> 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.<\/p>\n<p>Customize and rename Portfolio archive templates using visual gallery and page builder <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/portfolio-archive\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=archive\" rel=\"nofollow ugc noopener\">https:\/\/visualportfolio.co\/docs\/portfolio-archive\/<\/a><\/p>\n<p>In case you want to use Visual Portfolio plugin for photo gallery only you can disable custom post type registration.<\/p>\n<h3>\ud83d\udc8e Posts Query Builder<\/h3>\n<p>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.<\/p>\n<h3>\ud83d\uddbc\ufe0f Photo Galleries<\/h3>\n<p>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.<\/p>\n<h3>\u26a1 Powerful Lightbox<\/h3>\n<p>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.<\/p>\n<p><strong>Mobile Optimized<\/strong> <br \/> Looks great on every device. Swipe to navigate, spread\/pinch to zoom in\/out supported on touch devices.<\/p>\n<p><strong>GPU Accelerated<\/strong> <br \/> Hardware accelerated animations for better performance and seamless user experience.<\/p>\n<p><strong>Smart Loading<\/strong> <br \/> Gallery images are responsive and loaded progressively using lazy loading on demand.<\/p>\n<p><strong>Social Sharing<\/strong> <br \/> You can allow users to share photos on Facebook, Twitter, and Pinterest with social sharing buttons.<\/p>\n<h3>\ud83d\udcf9 Video and \ud83c\udfb5 Audio Support<\/h3>\n<p>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).<\/p>\n<p>Supported Video Vendors:<\/p>\n<ul>\n<li>Youtube<\/li>\n<li>Vimeo<\/li>\n<li>IGTV (Instagram)<\/li>\n<li>TikTok<\/li>\n<li>Twitch<\/li>\n<li>Facebook Video<\/li>\n<li>DailyMotion<\/li>\n<li>Wistia<\/li>\n<li>VideoPress<\/li>\n<li>TED<\/li>\n<li>Rutube<\/li>\n<li>Metacafe<\/li>\n<li>Coub<\/li>\n<li>Self Hosted Video<\/li>\n<\/ul>\n<p>Supported Audio Vendors:<\/p>\n<ul>\n<li>Spotify<\/li>\n<li>SoundCloud<\/li>\n<li>Mixcloud<\/li>\n<li>Beatport<\/li>\n<li>Self Hosted Audio<\/li>\n<\/ul>\n<h3>\ud83d\udcc8 SEO-Friendly<\/h3>\n<p>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.<\/p>\n<p>In addition our plugin add images in the sitemap for <code>All In One SEO<\/code>, <code>Rank Math<\/code>, and <code>Yoast SEO<\/code> plugins<\/p>\n<h3>\ud83c\udff3\ufe0f Multilingual &amp; Translation Ready<\/h3>\n<p>Visual Portfolio adds a new layer of compatibility for <a target=\"_blank\" href=\"https:\/\/wpml.org\/\" rel=\"nofollow ugc noopener\">WPML<\/a>. All blocks are compatible with it and ready for translation. <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/multilingual\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=wpml\" rel=\"nofollow ugc noopener\">https:\/\/visualportfolio.co\/docs\/multilingual\/<\/a><\/p>\n<h3>\ud83d\udee0 Built For Developers<\/h3>\n<p>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.<\/p>\n<h3>\ud83d\udd25 Visual Portfolio Pro<\/h3>\n<blockquote>\n<p>The Visual Portfolio plugin is also available in a professional version which includes more features and enhanced performance! <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro\" rel=\"nofollow ugc noopener\"><strong>Learn more about Visual Portfolio Pro<\/strong><\/a><\/p>\n<p>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:<\/p>\n<\/blockquote>\n<ul>\n<li>\n<p><strong>Advanced Skin Settings<\/strong><\/p>\n<ul>\n<li><strong>Image Filters and Blend Mode<\/strong> \u2013 apply Instagram-like filters on images for Normal and Hover states<\/li>\n<li><strong>Transformations<\/strong> \u2013 control the image transformation and border radius for Normal and Hover states<\/li>\n<li><strong>Typography<\/strong> \u2013 control every text part of gallery captions and overlays<\/li>\n<li><strong>Dimensions<\/strong> \u2013 controls paddings, margins and border radius of captions and overlays<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Stylish Interaction Effects<\/strong><\/p>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/justified-tilt-effect\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_effects\" rel=\"nofollow ugc noopener\">Hover Tilt Effect<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/custom-hover-image-animated-gif\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_effects\" rel=\"nofollow ugc noopener\">Custom Hover Image<\/a> \u2013 useful for animated GIFs<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/masonry-caption-move\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_effects\" rel=\"nofollow ugc noopener\">Caption Move Skin<\/a><\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Social Feeds<\/strong><br \/>\nAutomatically fetch posts from your social networks to display in gallery on your site.<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-instagram\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">Instagram<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-youtube\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">Youtube<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-vimeo\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">Vimeo<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-unsplash\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">Unsplash<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-twitter\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">Twitter<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-flickr\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">Flickr<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-google-photos\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">Google Photos<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-dribbble\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">Dribbble<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-twitch\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">Twitch<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/social-medium-rss\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_social_feeds\" rel=\"nofollow ugc noopener\">RSS<\/a><\/li>\n<li>VK (Vkontakte)<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/theft-protection\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_protection\" rel=\"nofollow ugc noopener\"><strong>Theft Protection<\/strong><\/a><\/p>\n<ul>\n<li><strong>Watermarks<\/strong> \u2013 add your logo on top of your images to make them harder to steal<\/li>\n<li><strong>Password Form<\/strong> \u2013 add a password to gallery blocks and send it to your clients<\/li>\n<li><strong>Age Gate<\/strong> \u2013 Protect visitors from viewing adult content<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/proofing\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro_proofing\" rel=\"nofollow ugc noopener\"><strong>Photos Proofing<\/strong><\/a><br \/>\nCommunicate with your clients in a modern way:<\/p>\n<ol>\n<li><strong>Create Proofing Gallery<\/strong> \u2013 Easily create a gallery with photos, as you did before. Change styling, layout, etc. if you want.<\/li>\n<li><strong>Send to a Client<\/strong> \u2013 Send photos collection to your client for proofing. The client will be able to leave comments on individual photos and communicate with you.<\/li>\n<li><strong>Get Approval<\/strong> \u2013 Once the client approves the selection, you will be able to see the selected photos and copy filenames for post-production.<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><strong>Advanced Click Actions<\/strong><br \/>\nManually configure how to open specific item types and filter clicking on title or on image.<\/p>\n<\/li>\n<li>\n<p><strong>Responsive Breakpoints Settings<\/strong><br \/>\nManually control the screen sizes, which used by the automatic responsive function to adapt your gallery layouts.<\/p>\n<\/li>\n<li>\n<p><strong>AJAX Improvements<\/strong><br \/>\nRequests properly cached and links preloaded before you click.<\/p>\n<\/li>\n<li>\n<p><strong>Advanced Query Settings<\/strong><br \/>\nFilter by Author, Date Range, Ignore Sticky Posts, exclude posts without Featured Image, and much more\u2026<\/p>\n<\/li>\n<li>\n<p><strong>Quick View for Posts and Pages<\/strong><br \/>\nDisplay posts and pages in popup iframe, not only image and video galleries. It\u2019s like works preview in Dribbble and Behance, but on your own site.<\/p>\n<\/li>\n<li>\n<p><strong>Popup Gallery Deep Linking<\/strong><br \/>\nMakes URL automatically change when you open popup and you can easily link to a specific popup image.<\/p>\n<\/li>\n<li>\n<p><strong>White Label<\/strong><br \/>\nPossibility to use your brand name and logo instead of our \u201cVisual Portfolio\u201d.<\/p>\n<\/li>\n<\/ul>\n<p><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/pricing\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=pro\" rel=\"nofollow ugc noopener\"><strong>Find much more portfolio and gallery features of Visual Portfolio Pro today!<\/strong><\/a><\/p>\n<h3>\ud83c\udf1f More Features<\/h3>\n<ul>\n<li>\n<p><strong>Lightboxes for Standard WordPress Images<\/strong><br \/>\nImage lightbox available for Visual Portfolio galleries as well as for standard WordPress images and galleries in your content.<\/p>\n<\/li>\n<li>\n<p><strong>AJAX Loading and Pagination<\/strong><br \/>\nEvery dynamic part of the Visual Portfolio plugin is using AJAX to update the gallery content in live mode.<br \/>\nOrganized 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:<\/p>\n<ul>\n<li>Infinite Scroll<\/li>\n<li>Load More button<\/li>\n<li>Paged pagination<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Filter<\/strong><br \/>\nFilter your gallery and portfolio by taxonomies (mostly categories and tags). Let users select a category and see the relevant items.<\/p>\n<\/li>\n<li>\n<p><strong>Sort gallery items by date and title<\/strong><br \/>\nUsers may sort gallery items by date and title.<\/p>\n<\/li>\n<li>\n<p><strong>GIFs Support<\/strong><br \/>\nOur plugin automatically displays the animated GIFs in photo galleries. Also, you can show the animated GIFs on mouseover with the Pro plugin.<\/p>\n<\/li>\n<li>\n<p><strong>Items Gutters<\/strong><br \/>\nManually adjust the spacing between gallery images and projects.<\/p>\n<\/li>\n<li>\n<p><strong>Images Lazy Loading<\/strong><br \/>\nImages lazy loading boost your page loading speed. You don\u2019t need to worry about it, just use your beautiful images in the gallery, Visual Portfolio will do all the work for you.<\/p>\n<\/li>\n<li>\n<p><strong>Images Aspect Ratio<\/strong><br \/>\nAll built-in gallery layouts support custom image aspect ratio. You don\u2019t need to crop the image manually.<\/p>\n<\/li>\n<li>\n<p><strong>Images Focal Point<\/strong><br \/>\nSometimes 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\u2019s faces on the portrait photos.<\/p>\n<\/li>\n<li>\n<p><strong>Custom Links for Gallery Images<\/strong><br \/>\nBy 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.<\/p>\n<\/li>\n<li>\n<p><strong>RTL Support<\/strong><br \/>\nVisual Portfolio natively supports RTL languages, proper styles loaded automatically, without user interaction.<\/p>\n<\/li>\n<li>\n<p><strong>Elementor and WPBakery Page Builder support<\/strong><br \/>\nThere 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.<\/p>\n<\/li>\n<li>\n<p><strong>Responsive and Mobile Ready<\/strong><br \/>\nVisual Portfolio and Galleries are completely responsive and mobile ready \u2013 layouts automagically transforms to display perfectly on your screen size.<\/p>\n<\/li>\n<li>\n<p><strong>Custom CSS<\/strong><br \/>\nDeeply customize the look of your gallery using custom CSS and CSS Variables.<\/p>\n<\/li>\n<li>\n<p><strong>\u2026 And Much More<\/strong><br \/>\nAll available features you can find on the <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=more_features\" rel=\"nofollow ugc noopener\">plugin\u2019s site<\/a> and <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/getting-started\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=docs\" rel=\"nofollow ugc noopener\">documentation<\/a>.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"screenshots\" class=\"plugin-screenshots section\">\n<h2 id=\"screenshots-header\">Screenshots<\/h2>\n<ul class=\"plugin-screenshots\">\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/visual-portfolio\/assets\/screenshot-1.png?rev=3001683\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/visual-portfolio\/assets\/screenshot-1.png?rev=3001683\" alt=\"\"><\/a><figcaption>Gutenberg Blocks<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/visual-portfolio\/assets\/screenshot-2.png?rev=3001683\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/visual-portfolio\/assets\/screenshot-2.png?rev=3001683\" alt=\"\"><\/a><figcaption>Gutenberg Block Settings<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/visual-portfolio\/assets\/screenshot-3.png?rev=3001683\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/visual-portfolio\/assets\/screenshot-3.png?rev=3001683\" alt=\"\"><\/a><figcaption>Projects Admin<\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"tab-installation\" class=\"plugin-installation section\">\n<h2 id=\"installation-header\">Installation<\/h2>\n<h3>Automatic installation<\/h3>\n<p>Automatic installation is the easiest option as WordPress handles the file transfers itself and you don\u2019t 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.<\/p>\n<p>In the search field type \u201cVisual Portfolio\u201d and click Search Plugins. Once you\u2019ve 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 \u201cInstall Now\u201d.<\/p>\n<h3>Manual installation<\/h3>\n<p>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 <a target=\"_blank\" href=\"https:\/\/codex.wordpress.org\/Managing_Plugins#Manual_Plugin_Installation\" rel=\"nofollow ugc noopener\">instructions on how to do this here<\/a>.<\/p>\n<\/div>\n<div id=\"faq\" class=\"plugin-faq section\">\n<h2 id=\"faq-header\">FAQ<\/h2>\n<dl>\n<dt id=\"does%20visual%20portfolio%20has%20documentation%3F\">\n<h3>Does Visual Portfolio has documentation?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, our plugin has documentation to easily get started with galleries. Read it here \u2013 <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/getting-started\/?utm_source=wordpress.org&amp;utm_medium=faq&amp;utm_campaign=docs\" rel=\"nofollow ugc noopener\">Visual Portfolio Documentation<\/a><\/p>\n<\/dd>\n<dt id=\"what%20themes%20does%20visual%20portfolio%20support%3F\">\n<h3>What themes does Visual Portfolio support?<\/h3>\n<\/dt>\n<dd>\n<p>Visual Portfolio has been tested with many WordPress themes and supports all major WordPress themes. Since we follow WordPress\u2019 plugin development guidelines, you can rest assured that Visual Portfolio galleries will work perfectly, no matter what theme you use. If you\u2019ve 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.<\/p>\n<\/dd>\n<dt id=\"do%20i%20have%20to%20remove%20other%20gallery%20and%20portfolio%20plugins%20if%20i%20install%20visual%20portfolio%3F\">\n<h3>Do I have to remove other Gallery and Portfolio plugins if I install Visual Portfolio?<\/h3>\n<\/dt>\n<dd>\n<p>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.<\/p>\n<\/dd>\n<dt id=\"are%20the%20galleries%20mobile%20friendly%3F\">\n<h3>Are the galleries mobile friendly?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, Visual Portfolio built with mobile optimization in mind. It will automatically fit your screen size, so you don\u2019t need to worry about. Furthermore, we prepared lazy loading, which significantly increases page loading speed. Before making a decision, just check by yourself how <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/masonry\/?utm_source=wordpress.org&amp;utm_medium=faq&amp;utm_campaign=docs\" rel=\"nofollow ugc noopener\">Visual Portfolio works on mobile devices<\/a>.<\/p>\n<\/dd>\n<dt id=\"can%20i%20upload%20multiple%20images%20at%20once%3F\">\n<h3>Can I upload multiple images at once?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, you can batch upload entire photo galleries at one time thanks to WordPress media library functionality.<\/p>\n<\/dd>\n<dt id=\"is%20there%20pagination%20for%20photo%20galleries%3F\">\n<h3>Is there pagination for photo galleries?<\/h3>\n<\/dt>\n<dd>\n<p>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 <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/?utm_source=wordpress.org&amp;utm_medium=faq&amp;utm_campaign=docs\" rel=\"nofollow ugc noopener\">available on the Visual Portfolio website<\/a>.<\/p>\n<\/dd>\n<dt id=\"can%20i%20filter%20images%20and%20projects%20by%20categories%3F\">\n<h3>Can I filter images and projects by categories?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, our plugin has built in support for AJAX Filter by items categories. See a couple of examples:<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/grid\/?utm_source=wordpress.org&amp;utm_medium=faq&amp;utm_campaign=docs\" rel=\"nofollow ugc noopener\">Category filtering with links<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/filterable-and-sortable\/?utm_source=wordpress.org&amp;utm_medium=faq&amp;utm_campaign=docs\" rel=\"nofollow ugc noopener\">Category filtering + Sort with Select<\/a><\/li>\n<\/ul>\n<\/dd>\n<dt id=\"can%20i%20add%20an%20external%20links%20to%20galleries%3F\">\n<h3>Can I add an external links to galleries?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, you can add external links to your gallery items.<\/p>\n<\/dd>\n<dt id=\"is%20visual%20portfolio%20developers%20friendly%3F\">\n<h3>Is Visual Portfolio developers friendly?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, we prepared a lot of filters and actions for developers, so you can easily extend default functionality for your need. <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/developers\/?utm_source=wordpress.org&amp;utm_medium=faq&amp;utm_campaign=docs\" rel=\"nofollow ugc noopener\">Read here more info for developers<\/a>.<\/p>\n<\/dd>\n<dt id=\"is%20visual%20portfolio%20translation%20ready%3F\">\n<h3>Is Visual Portfolio translation ready?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, Visual Portfolio has full translation and localization support via the <code>visual-portfolio<\/code> textdomain. To submit a translation, see <a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/visual-portfolio\/\" rel=\"nofollow ugc noopener\">https:\/\/translate.wordpress.org\/projects\/wp-plugins\/visual-portfolio\/<\/a><\/p>\n<\/dd>\n<dt id=\"more%20information\">\n<h3>More Information<\/h3>\n<\/dt>\n<dd>\n<p>For more information, feel free to visit <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/?utm_source=wordpress.org&amp;utm_medium=faq&amp;utm_campaign=docs\" rel=\"nofollow ugc noopener\">Visual Portfolio official website<\/a>.<\/p>\n<\/dd>\n<\/dl>\n<\/div>\n<div id=\"tab-reviews\" class=\"plugin-reviews section\">\n<h2 id=\"reviews-header\">Reviews<\/h2>\n<div class=\"plugin-reviews\">\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/06eafcd76172b445650ea5d4b75a41a51510581e976737454e48c802b774cece?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/06eafcd76172b445650ea5d4b75a41a51510581e976737454e48c802b774cece?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/buon-plug-in-2\/\" rel=\"noopener\">Ottimo Plug in<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/clurican\/\" title=\"Posts by clurican\" rel=\"author noopener\">clurican<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">February 1, 2025<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">tante belle soluzioni anche free<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/135015d6311e2f0eca9d227855a18266812e55801a03dfab753dfc75077a08ff?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/135015d6311e2f0eca9d227855a18266812e55801a03dfab753dfc75077a08ff?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/good-plugin-7042\/\" rel=\"noopener\">Good plugin<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/minhazmohamed\/\" title=\"Posts by Minhaz Irphan Mohamed\" rel=\"author noopener\">Minhaz Irphan Mohamed<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">January 30, 2025<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I recommend this plugin to anyone who wants to have a portfolio on their website<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/eeb9cd3014ca45dd66a7a2423bd12ae302ecd22ca20aab9e69dbe9c970890608?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/eeb9cd3014ca45dd66a7a2423bd12ae302ecd22ca20aab9e69dbe9c970890608?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/great-plugin-if-youre-looking-for-accessibility\/\" rel=\"noopener\">Great plugin if you\u2019re looking for accessibility!<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/marianocaino\/\" title=\"Posts by Mariano Caino\" rel=\"author noopener\">Mariano Caino<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">January 9, 2025<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I\u2019m glad using Visual Portfolio because it combines good design, good user experience, many settings to choose from, and accessibility for everyone.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/eaee448c4cdc44cc338954f8258995c89c84a6fbb17136f64fab347c02109689?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/eaee448c4cdc44cc338954f8258995c89c84a6fbb17136f64fab347c02109689?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/very-nice-portfolio-plugin\/\" rel=\"noopener\">Very nice portfolio plugin<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/offpeakdesign\/\" title=\"Posts by offpeakdesign\" rel=\"author noopener\">offpeakdesign<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">January 6, 2025<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">Works really well and has many options available to customize it. Really very useful for portfolio grid and helps liven up portfolio pages. Impressive experience with free version.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/551b60aad672d8a81f173501b3667bf1fe2fcffbefa01f76e2acf7cc70f5db5c?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/551b60aad672d8a81f173501b3667bf1fe2fcffbefa01f76e2acf7cc70f5db5c?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"2 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"2\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/unstable-17\/\" rel=\"noopener\">Unstable<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/luxoperon\/\" title=\"Posts by luxoperon\" rel=\"author noopener\">luxoperon<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">December 17, 2024<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I thought it was a great portfolio suite. It did everything that I wanted. And looked great. <\/p>\n<p>But man, while it has been working flawlessly for several years, recently all the my portfolio post pages are just\u2026.gone. The landing page is intact, but all of of my content just turned into nothing.<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/d982a213bdf24acdc23ea917f1af0804f08b1c14b20dd4a6a2d4cde2e4762f3b?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/d982a213bdf24acdc23ea917f1af0804f08b1c14b20dd4a6a2d4cde2e4762f3b?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/absolute-perfection-for-student-pro-portfolios\/\" rel=\"noopener\">Absolute Perfection for Student\/ Pro Portfolios<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/mxnicholson\/\" title=\"Posts by mxnicholson\" rel=\"author noopener\">mxnicholson<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">November 21, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I\u2019ve been trying to find a plugin for awhile that I can use with certain styles to display my projects from university and personal artworks. The biggest thing was it needed to be somewhat modular and I could filter groups. This has been absolutely amazing for that use. Though I wish there were more layouts and dynamics to how layouts look .<\/div>\n<\/p><\/div>\n<\/article><\/div>\n<p>\t\t<a target=\"_blank\" class=\"reviews-link\" href=\"https:\/\/wordpress.org\/support\/plugin\/visual-portfolio\/reviews\/\" rel=\"noopener\"><br \/>\n\t\t\tRead all 294 reviews\t\t<\/a><\/div>\n<div id=\"tab-developers\" class=\"plugin-developers section\">\n<h2 id=\"developers-header\">Contributors &amp; Developers<\/h2>\n<div class=\"plugin-contributors\">\n<p>\u201cVisual Portfolio, Photo Gallery &amp; Post Grid\u201d is open source software. The following people have contributed to this plugin.<\/p>\n<p><span class=\"screen-reader-text\">Contributors<\/span><\/p>\n<ul id=\"contributors-list\" class=\"contributors-list\">\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/582068d736cd0aaf531506fbcb754d3b2cac8c022f0403c4a4ed5cc27e5d78ca?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/582068d736cd0aaf531506fbcb754d3b2cac8c022f0403c4a4ed5cc27e5d78ca?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/visualportfolio\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tVisual Portfolio\t\t\t\t<\/a>\n\t\t\t<\/li>\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/8cab63be135d6e22e28bbfadac9eddbd06092802f6160507f62571f8c64113fc?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/8cab63be135d6e22e28bbfadac9eddbd06092802f6160507f62571f8c64113fc?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/nko\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tNikita\t\t\t\t<\/a>\n\t\t\t<\/li>\n<\/ul><\/div>\n<div class=\"plugin-development\">\n<p>\u201cVisual Portfolio, Photo Gallery &amp; Post Grid\u201d has been translated into 3 locales. Thank you to <a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/visual-portfolio\/contributors\" rel=\"noopener\">the translators<\/a> for their contributions.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/visual-portfolio\" rel=\"noopener\">Translate \u201cVisual Portfolio, Photo Gallery &amp; Post Grid\u201d into your language.<\/a><\/p>\n<h3>Interested in development?<\/h3>\n<p><a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/browser\/visual-portfolio\/\" rel=\"noopener\" class=\"broken_link\">Browse the code<\/a>, check out the <a target=\"_blank\" href=\"https:\/\/plugins.svn.wordpress.org\/visual-portfolio\/\" rel=\"noopener\">SVN repository<\/a>, or subscribe to the <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/visual-portfolio\/\" rel=\"noopener\" class=\"broken_link\">development log<\/a> by <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/visual-portfolio\/?limit=100&amp;mode=stop_on_copy&amp;format=rss\" rel=\"noopener\" class=\"broken_link\">RSS<\/a>.<\/p>\n<\/div>\n<\/div>\n<div id=\"tab-changelog\" class=\"plugin-changelog section\">\n<h2 id=\"changelog-header\">Changelog<\/h2>\n<h4>3.3.12 \u2013 Dec 20, 2024<\/h4>\n<ul>\n<li>fixed order by Image Title when both Title Source and Description Source is set to None<\/li>\n<li>fixed Portfolio Manager role editing Saved Layouts when Project custom post type disabled<\/li>\n<li>fixed image selection popup in block editor JS error<\/li>\n<\/ul>\n<h4>3.3.11 \u2013 Dec 15, 2024<\/h4>\n<ul>\n<li>added WP 6.7 compatibility<\/li>\n<li>fixed id attribute rendering<\/li>\n<li>fixed some styles in editor<\/li>\n<li><strong>Pro:<\/strong><\/li>\n<li>fixed Advanced Click Actions sometimes not properly displaying a Popup<\/li>\n<li>fixed title display error in popup caption<\/li>\n<li>fixed Instagram integration \u2013 you must reconnect to use the Instagram API instead of deprecated Instagram Basic Display API. Learn more: <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/social-feeds\/instagram\/\" rel=\"nofollow ugc noopener\">https:\/\/visualportfolio.co\/docs\/social-feeds\/instagram\/<\/a><\/li>\n<\/ul>\n<h4>3.3.10 \u2013 Sep 30, 2024<\/h4>\n<ul>\n<li>fixed possible XSS via stored HTML and Fancybox script<\/li>\n<\/ul>\n<h4>3.3.9 \u2013 Jul 17, 2024<\/h4>\n<ul>\n<li>fixed Sort by Date option not working correctly<\/li>\n<li>fixed PHP warning when image was removed from Media library but still exists in the gallery<\/li>\n<li>fixed WPRocket delay JS conflict with lazyloading<\/li>\n<\/ul>\n<h4>3.3.8 \u2013 May 29, 2024<\/h4>\n<ul>\n<li><strong>Pro:<\/strong><\/li>\n<li>fixed click action on gallery items with a custom URL in saved layouts<\/li>\n<\/ul>\n<h4>3.3.7 \u2013 May 27, 2024<\/h4>\n<ul>\n<li>fixed displaying date on gallery items<\/li>\n<li>fixed gallery images resets data in saved layouts<\/li>\n<\/ul>\n<h4>3.3.6 \u2013 May 16, 2024<\/h4>\n<ul>\n<li>fixed DESC order for \u201cManual\u201d and \u201cRand\u201d image orders<\/li>\n<li>rename \u201cDefault\u201d order to \u201cManual\u201d<\/li>\n<li><strong>Pro:<\/strong><\/li>\n<li>fixed Hover CSS Filter styles loading if there is no Default CSS Filter provided<\/li>\n<li>fixed custom image URL in the gallery, applied from the first item to all other items<\/li>\n<\/ul>\n<h4>3.3.5 \u2013 May 15, 2024<\/h4>\n<ul>\n<li>fixed PHP warning from <code>array_key_exists<\/code> function<\/li>\n<li>fixed wrong attribute output for select control with bool value<\/li>\n<li>fixed gallery sorting algorithm, now it should work correctly<\/li>\n<\/ul>\n<h4>3.3.4 \u2013 May 11, 2024<\/h4>\n<ul>\n<li>fixed dynamic selector block options rendering on the frontend.<\/li>\n<\/ul>\n<h4>3.3.3 \u2013 May 11, 2024<\/h4>\n<ul>\n<li>fixed custom title tag XSS vulnerability (properly escape the custom tag and prevent using non-predefined values)<\/li>\n<\/ul>\n<h4>3.3.2 \u2013 Apr 30, 2024<\/h4>\n<ul>\n<li>add more sort options in image galleries: Item Title, Item Description, Image Title, Image Description, Image Caption, Image Alt<\/li>\n<li>improved image gallery sort code \u2013 images with empty field will be always placed after items with non-empty field<\/li>\n<li>fixed the behavior of the \u201cAll\u201d filters link when the portfolio archive page set as the home page<\/li>\n<li><strong>Pro:<\/strong><\/li>\n<li>fixed Skin typography settings error in WP 6.5<\/li>\n<li>fixed image gallery non-working Hover and Custom Popup settings when you change it<\/li>\n<li>fixed horizontal thumbnails displaying in Fancybox<\/li>\n<li>fixed displaying Pro plugin settings opacity<\/li>\n<\/ul>\n<h4>3.3.1 \u2013 Mar 13, 2024<\/h4>\n<ul>\n<li>added support for Download button in PhotoSwipe<\/li>\n<li>added Horizontal Order option to Masonry layout<\/li>\n<li>added support for lazy loading inside AJAX callbacks<\/li>\n<li>added support for WooCommerce images lazy loading<\/li>\n<li>improved block gallery images in editor \u2013 allow selecting images with shift key pressed<\/li>\n<li>changed Justified Row Height option minimum threshold to 20<\/li>\n<li>fixed gallery images in block editor Uncategorized filter<\/li>\n<li>fixed image blinking after filter in Masonry, Tiles and Grid layouts<\/li>\n<li>removed stagger delay from Masonry, Tiles and Grid layouts because it is not working properly in large galleries<\/li>\n<li>minor improvements<\/li>\n<li><strong>Pro:<\/strong><\/li>\n<li>fixed Overlay Under Image option in Emerge and Caption Move styles<\/li>\n<\/ul>\n<h4>3.2.4 \u2013 Feb 26, 2024<\/h4>\n<ul>\n<li>added stagger delay for Masonry, Grid and Tiles layouts<\/li>\n<li>added proper horizontal order for Masonry layout<\/li>\n<li>added possibility to edit gallery images in bulk<\/li>\n<li>added gallery images filter by category in editor<\/li>\n<li>fixed Portfolio menu item name change when on Taxonomy archive page<\/li>\n<li>fixed duplicating Portfolio page after WordPress XML file import<\/li>\n<li><strong>Pro:<\/strong><\/li>\n<li>added Twitch avatar caching to fix missing link<\/li>\n<li>added possibility to add any block on Proofing pages<\/li>\n<li>fixed Grid vertical align option<\/li>\n<li>minor fixes<\/li>\n<\/ul>\n<h4>3.2.3 \u2013 Dec 12, 2023<\/h4>\n<ul>\n<li>fixed displaying editor block when creating new Saved Layout<\/li>\n<\/ul>\n<h4>3.2.2 \u2013 Nov 29, 2023<\/h4>\n<ul>\n<li>added support for asset file change time when enqueue without .asset.php \u2013 better support for caching plugins<\/li>\n<li>fixed Elementor preview stopped working<\/li>\n<\/ul>\n<h4>3.2.1 \u2013 Nov 29, 2023<\/h4>\n<ul>\n<li>fixed Pro plugin path and url detection \u2013 now it should work correctly when Free plugin is removed<\/li>\n<li>fixed sitemap fatal error<\/li>\n<\/ul>\n<h4>3.2.0 \u2013 Nov 25, 2023<\/h4>\n<ul>\n<li>added support for proper SEO meta URLs in Portfolio archives and Filtered pages in Yoast SEO, AIOSEO, Rank Math<\/li>\n<li>added Skin option to change item title tag<\/li>\n<li>added <code>vpf_extend_posts_source<\/code> filter<\/li>\n<li>added check for image existence when resave the gallery from the popup<\/li>\n<li>added check for caption is empty and don\u2019t print the figcaption<\/li>\n<li>added support for new Ghost Kit extensions<\/li>\n<li>updated blocks apiVersion to 3 to allow iframe usage in editor<\/li>\n<li>fixed PHP 8.* warning<\/li>\n<li>fixed lazy loading script styles added event when 3rd-party lazy loading used<\/li>\n<li>fixed lazy loading without srcset<\/li>\n<li>fixed lazy loading placeholder displaying when used Hover image<\/li>\n<li>fixed width calculation for lazy loading and picture tag<\/li>\n<li>fixed lazysizes script version number<\/li>\n<li>fixed lazy loading conflict with WP Rocket Delay JS setting<\/li>\n<li>fixed typo in <code>DONOTCACHEOBJECT<\/code> constant<\/li>\n<li>fixed featured image focal point control conflict in WP 6.3<\/li>\n<li>fixed Grid layout preview JS error in editor<\/li>\n<li>simplified lazy loading placeholder animation<\/li>\n<li>changed lazy loading styles to use modern :has() CSS (with fallback for old browsers)<\/li>\n<li>removed jQuery usage from lazy loading script<\/li>\n<li><strong>Pro:<\/strong><\/li>\n<li>IMPORTANT: changed the Pro plugin to standalone, which is not requires the Free version installed anymore<\/li>\n<li>added Setup Wizard support to all Social Account controls<\/li>\n<li>fixed Share URL and paged gallery wrong URL<\/li>\n<li>fixed mime detection for images in Flickr social feeds<\/li>\n<li>fixed init conditionize script once opened Social settings panel<\/li>\n<\/ul>\n<h4>3.1.3 \u2013 Jul 1, 2023<\/h4>\n<ul>\n<li>improved PhotoSwipe popup zoom for large vertical images<\/li>\n<li>changed \u2018Projects\u2019 CPT label to portfolio page name<\/li>\n<li>changed images and overlay border-radius to clip-path (better performance)<\/li>\n<li>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)<\/li>\n<\/ul>\n<h4>3.1.2 \u2013 Jun 6, 2023<\/h4>\n<ul>\n<li>renamed <code>Portfolio Items<\/code> to <code>Projects<\/code><\/li>\n<li>fixed playing videos in background in PhotoSwipe<\/li>\n<li>fixed portfolio archive hidden pagination in some cases<\/li>\n<li>fixed portfolio archive friendly URL in load more button<\/li>\n<li>fixed portfolio archive filter and sort paged URLs<\/li>\n<\/ul>\n<h4>3.1.1 \u2013 May 17, 2023<\/h4>\n<ul>\n<li>fixed Archive mapping PHP notice when no Archive Page ID available<\/li>\n<li>renamed <code>Carousel<\/code> to <code>Slider<\/code><\/li>\n<\/ul>\n<h4>3.1.0 \u2013 May 12, 2023<\/h4>\n<ul>\n<li>added support for gradients in overlay backgrounds<\/li>\n<li>added <code>Restore Focus<\/code> setting to the Popup gallery<\/li>\n<li>added support for GET variables <code>vp_page<\/code>, <code>vp_filter<\/code>, <code>vp_sort<\/code>, <code>vp_search<\/code> in canonical and short links<\/li>\n<li>added PHP filter <code>vpf_global_data<\/code><\/li>\n<li>changed CSS to use Gap instead of hack with margins<\/li>\n<li>changed popup data <code>&lt;div&gt;<\/code> to <code>&lt;template&gt;<\/code>. We need this change for 3 reasons:\n<ul>\n<li>prevent popup data from indexing<\/li>\n<li>prevent a lot of not needed content rendering<\/li>\n<li>in some cases this content causes bugs with layout styles<\/li>\n<\/ul>\n<\/li>\n<li>changed default popup title and description source for Posts content. Use Image title and description, and not the post title and content<\/li>\n<li>changed overlay displaying from <code>focus<\/code> to <code>focus-visible<\/code><\/li>\n<li>fixed Popup data displaying even when Click Action is URL<\/li>\n<li>fixed transition caption transition CSS variable name in the Classic skin<\/li>\n<li>fixed Skin editor error on WP 6.0 because of using <code>NavigatorToParentButton<\/code> component<\/li>\n<li>fixed Select control dropdown is not visible in editor when opened popup<\/li>\n<\/ul>\n<blockquote>\n<p>v3 Migration Guide \u2013 <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/troubleshooting\/migration-to-v3\/\" rel=\"nofollow ugc noopener\">https:\/\/visualportfolio.co\/docs\/troubleshooting\/migration-to-v3\/<\/a><\/p>\n<\/blockquote>\n<h4>3.0.0 \u2013 Apr 13, 2023<\/h4>\n<ul>\n<li>completely reworked Skin options and some UI elements of block controls this helped us to structure deep Skin customizations such as:\n<ul>\n<li>Typography control<\/li>\n<li>Dimensions control (overlay padding, caption items gap, etc)<\/li>\n<li>Blend Mode for overlay<\/li>\n<li>Image transform for normal and hover states<\/li>\n<li>Image border radius for normal and hover states<\/li>\n<\/ul>\n<\/li>\n<li>changed the structure of Skin templates \u2013 use classes and CSS variables with <code>overlay<\/code> and <code>caption<\/code> names where appropriate<\/li>\n<li>added caption support for popup in video items<\/li>\n<li>improved controls dynamic CSS rendering \u2013 merge all styles with same selector with better formatting<\/li>\n<li>improved filter and pagination URLs to friendly on portfolio archive page (good for SEO)<\/li>\n<li>updated Swiper to v8.4.7<\/li>\n<li>changed template styles version \u2013 use dynamic value based on <code>filemtime<\/code> function return<\/li>\n<li>fixed portfolio category archives redirect when portfolio archive set as Front Page<\/li>\n<li>fixed pagination on portfolio taxonomy archive pages<\/li>\n<li>fixed canonical tags usage on portfolio category archives (fixes problems with SEO)<\/li>\n<li>fixed wrong Current Query generated when changed Portfolio on Front Page setting<\/li>\n<li>fixed Slider dynamic items height with Classic Style wrong items width<\/li>\n<li>fixed Slider dynamic items height with FireFox wrong items width<\/li>\n<li>fixed Slider items height incorrect size when used Items Height and Minimal Height options<\/li>\n<li>fixed conflict with Elementor new Swiper library (added in Elementor v3.11.0)<\/li>\n<li>fixed Elementor double lightbox on the pages, which does not use the Elementor page builder<\/li>\n<li>removed hardcoded CSS for popup top position based on admin bar height, use <code>--wp-admin--admin-bar--height<\/code> variable instead<\/li>\n<li>fixed error when using an array in control <code>sanitize_callback<\/code> (only in custom user controls)<\/li>\n<li>renamed <code>Items Style<\/code> <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> <code>Skin<\/code><\/li>\n<li>renamed <code>Items Click Action<\/code> <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> <code>Click Action<\/code><\/li>\n<li>new hooks for developers:\n<ul>\n<li>added more data to <code>vpf.editor.controls-render-inner-data<\/code> JS filter<\/li>\n<li>PHP <code>vpf_register_block_attribute_data<\/code><\/li>\n<li>PHP <code>vpf_register_block_attributes<\/code><\/li>\n<li>PHP <code>vpf_items_style_builtin_controls<\/code><\/li>\n<li>PHP <code>vpf_pagination_item_data<\/code><\/li>\n<li>PHP <code>vpf_controls_dynamic_css_value<\/code><\/li>\n<li>PHP <code>vpf_controls_dynamic_css_styles_array<\/code><\/li>\n<li>JS <code>vpf.editor.controls-dynamic-css-value<\/code><\/li>\n<li>JS <code>vpf.editor.controls-dynamic-css-styles-object<\/code><\/li>\n<li>jQuery <code>afterShowFancybox<\/code><\/li>\n<\/ul>\n<\/li>\n<li>minor changes<\/li>\n<\/ul>\n<h4>2.22.0 \u2013 Feb 12, 2023<\/h4>\n<ul>\n<li>added support for Youtube Shorts in popup<\/li>\n<li>added possibility to start AJAX loading when already in loading state (fixes the Search module conflict with concurrent requests)<\/li>\n<li>added support for displaying Portfolio Categories and Portfolio Tags in the <code>post-terms<\/code> block<\/li>\n<li>fixed filter, sort and pagination URLs to display absolute URLs<\/li>\n<li>fixed creating notices over on over again if no items found after AJAX requests<\/li>\n<li>fixed deprecated Elementor warnings<\/li>\n<li>fixed saving permalink error in WordPress 6.1<\/li>\n<li>fixed src <code>data:<\/code> escaping in lazy load images<\/li>\n<li>fixed minimal pagination active item wrong circle size<\/li>\n<li>fixed Fly overlay z-index when add Hover Image from Pro plugin<\/li>\n<li>fixed block crash in the Widgets and Templates editor<\/li>\n<li>fixed go pro link error when no Visual Portfolio admin menu exists<\/li>\n<li>changed defaults for popup title and description sources<\/li>\n<li>removed white background from Fancybox popup for better support vertical videos<\/li>\n<li>removed <code>clipboard-polyfill<\/code> and use native <code>navigator.clipboard.writeText<\/code> instead<\/li>\n<li>minor changes<\/li>\n<\/ul>\n<h4>2.21.2 \u2013 Nov 25, 2022<\/h4>\n<ul>\n<li>fixed JS error when open WordPress images in Lightbox<\/li>\n<li>fixed JS error when changing gallery image data<\/li>\n<\/ul>\n<h4>2.21.0 \u2013 Nov 24, 2022<\/h4>\n<ul>\n<li>added templates for popup data in <code>\/templates\/popup\/<\/code>, so developers can override it now in the theme templates<\/li>\n<li>added auto height to filter\/sort dropdown<\/li>\n<li>added support for HTML tags in the popup title<\/li>\n<li>added groups for controls for better UI<\/li>\n<li>added more steps in the block Setup Wizard<\/li>\n<li>added Wide alignment to newly added blocks by default<\/li>\n<li>added a notice for large galleries to use Infinite pagination for better performance<\/li>\n<li>added Items Per Page limit and Infinite pagination to the gallery when user adds more than 40 images in the Setup Wizard<\/li>\n<li>added support for align option in Filter and Sort shortcodes<\/li>\n<li>added <code>text_all<\/code> attribute to Filter shortcode<\/li>\n<li>improved shortcodes UI in Saved Layouts<\/li>\n<li>changed default Infinite pagination threshold from 250px to 400px<\/li>\n<li>fixed wrong popup image displaying when custom URL used<\/li>\n<li>fixed post featured image focal point save error<\/li>\n<li>fixed Elementor widget in Safari can\u2019t select layout<\/li>\n<li>fixed Jetpack lazy loading re-layout Masonry conflict<\/li>\n<li>fixed displaying popup data in HTML when click action disabled<\/li>\n<li>fixed duplicated portfolio page in Archive settings<\/li>\n<li>fixed PHP warning when Editors open admin screen or when plugin first time active<\/li>\n<li>fixed multiple select controls sanitize<\/li>\n<li>fixed Go Pro link style conflict with 3rd-party URLs<\/li>\n<li>minor changes and fixes<\/li>\n<\/ul>\n<h4>2.20.3 \u2013 Oct 3, 2022<\/h4>\n<ul>\n<li>fixed error when close popup gallery opened from the native gallery block<\/li>\n<li>fixed focus current item in the native gallery block when closing popup gallery<\/li>\n<\/ul>\n<h4>2.20.2 \u2013 Sep 29, 2022<\/h4>\n<ul>\n<li>improved accessibility \u2013 focus gallery item in after closing popup<\/li>\n<li>fixed images displaying in Slider with Classic style on Apple devices<\/li>\n<li>fixed Jetpack lazy loading when new items loaded in Visual Portfolio gallery using pagination or filters<\/li>\n<li>fixed displaying Read More button in Classic style, when all other meta disabled<\/li>\n<\/ul>\n<h4>2.20.1 \u2013 Sep 15, 2022<\/h4>\n<ul>\n<li>fixed 3rd-party lazy loading scripts add lazy attributes to noscript img tags<\/li>\n<li>fixed noscript styles loading when used optimization plugins<\/li>\n<li>fixed conflict with Elementor lightbox when used optimization plugins<\/li>\n<li>fixed undefined author field usage<\/li>\n<\/ul>\n<h4>2.20.0 \u2013 Sep 6, 2022<\/h4>\n<ul>\n<li>!important \u2013 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.<\/li>\n<li>added code for data sanitization in places, where we missed it<\/li>\n<li>added nonces usage to prevent possible hacker attacks<\/li>\n<li>added support for Swiper duplicates images lazy loading in 3rd-party carousels<\/li>\n<li>added Author to the Popup Title and Description sources<\/li>\n<li>improved lazy loading script\n<ul>\n<li>prevent adding noscript when image does not have vp-lazyload class after processing (for example, when skipped from adding lazy loading)<\/li>\n<li>prevent processing earlier if setting is disabled \u2013 faster code execution<\/li>\n<li>restored missing noscript for lazy images inside Visual Portfolio galleries<\/li>\n<\/ul>\n<\/li>\n<li>fixed Settings tab URL if Portfolio Post Type disabled<\/li>\n<\/ul>\n<h4>2.19.1<\/h4>\n<ul>\n<li>fixed Classic style image displaying bug in slider with dynamic height option<\/li>\n<li>fixed Color Picker error in custom Skins<\/li>\n<li>fixed Swiper slides displaying conflicts, which comes from some 3rd-party plugins<\/li>\n<li>minor changes<\/li>\n<\/ul>\n<h4>2.19.0<\/h4>\n<ul>\n<li>added stricter permission check for rest route <code>update_layout<\/code><\/li>\n<li>allow to call rest route <code>get_layouts<\/code> to all users, who can edit posts<\/li>\n<li>added settings to exclude images from lazy loading by attribute <a target=\"_blank\" href=\"https:\/\/visualportfolio.co\/docs\/settings\/images\/\" rel=\"nofollow ugc noopener\">https:\/\/visualportfolio.co\/docs\/settings\/images\/<\/a><\/li>\n<li>improved Gallery images selection \u2013 you can now select images without holding Ctrl\/Shift keys<\/li>\n<li>improved Gallery control \u2013 added pagination to prevent overwhelming block settings<\/li>\n<li>improved Gallery control \u2013 added additional info to selected image popup (such as source file URL, file size, etc\u2026)<\/li>\n<li>improved Visual Portfolio admin menu styles by adding dividers<\/li>\n<li>updated Swiper to the latest version 8.3.2<\/li>\n<li>fixed popup gallery open if default prevented already (fixed conflict with slider Free Scroll)<\/li>\n<li>fixed Slider text selection when trying to drag in the gap<\/li>\n<li>fixed Slider displaying images in a row before Swiper init<\/li>\n<li>fixed wrong popup gallery items parsing when Slider layout used<\/li>\n<li>fixed images little \u201cblink\u201d effect when swipe Slider to the left<\/li>\n<li>fixed Saved Layouts editor block control \u2018NaN\u2019 value when select an empty value<\/li>\n<li>fixed Saved Layouts API reset meta data if you don\u2019t provided all available attributes in your request<\/li>\n<li>minor changes<\/li>\n<\/ul>\n<h4>2.18.0<\/h4>\n<ul>\n<li>added possibility to change items count on Portfolio archive page in the plugin settings<\/li>\n<li>added portfolio archive page classes to the <code>&lt;body&gt;<\/code> tag<\/li>\n<li>improved Gallery sortable component in block settings<\/li>\n<li>improved Gallery component image popup in block settings to display Title and Description loaded dynamically from the Source settings<\/li>\n<li>changed Gallery component <code>Add Images<\/code> button to <code>Edit Gallery<\/code> button. You are not allowed to insert duplicate photos in a single gallery<\/li>\n<li>prevent closing multiple posts block option dropdown when selected value. Easier to select multiple posts from dropdown<\/li>\n<li>fixed security vulnerability \u2013 rest call wrong permission check<\/li>\n<li>fixed Taxonomy selector error with empty taxonomy<\/li>\n<li>fixed displaying posts when empty Taxonomy selected in the query options<\/li>\n<li>fixed some JS errors and warnings in the Gutenberg editor<\/li>\n<li>removed custom meta settings from non-viewable post types<\/li>\n<li>removed <code>will-change<\/code> styles usage<\/li>\n<li>minor changes<\/li>\n<\/ul>\n<p>Further changelog entries can be found in the <a target=\"_blank\" href=\"https:\/\/github.com\/nk-crew\/visual-portfolio\/blob\/master\/CHANGELOG.md\" rel=\"nofollow ugc noopener\">CHANGELOG.md<\/a> file.<\/p>\n<\/div><\/div>\n<p><!-- .entry-content --><\/p>\n<p>\t<!-- .entry-meta --><br \/>\n<\/article>\n<p><br \/>\n<br \/><a href=\"https:\/\/wordpress.org\/plugins\/visual-portfolio\/\" target=\"_blank\" rel=\"noopener\">Source link <\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Visual Portfolio, Photo Gallery &amp; Post Grid By Nikita Download Details Reviews Installation Development Support Description Gallery &amp; Portfolio Plugin For WordPress \u2605\u2605\u2605\u2605\u2605 Portfolio websites are the most popular nowadays. We created Visual Portfolio, Photo Gallery &amp; Post Grid WordPress plugin, to help every creative, agency, and photographers get access to the powerful tools they [&hellip;]<\/p>","protected":false},"author":165,"featured_media":3719,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"give_campaign_id":0,"footnotes":""},"categories":[43,39,40],"tags":[2055,2221,1988,2424,2138,2537],"class_list":["post-3718","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-commercial-plugin","category-lite-version","category-wp-plugin-solution","tag-gallery","tag-grid","tag-photo","tag-portfolio","tag-post","tag-visual"],"acf":[],"fifu_image_url":"https:\/\/ps.w.org\/visual-portfolio\/assets\/banner-772x250.png?rev=2408754","_links":{"self":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/3718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/users\/165"}],"replies":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/comments?post=3718"}],"version-history":[{"count":0,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/3718\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media\/3719"}],"wp:attachment":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media?parent=3718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/categories?post=3718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/tags?post=3718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}