WP Manifestindependent plugin directory
manifest / media / wp-portfolios-gallery

Portfolios Gallery

A self-contained WordPress plugin for portfolio and album galleries — unlimited albums per portfolio, drag-and-drop image management, category filtering, and an accessible lightbox. No ACF or other dependencies required.

by Muideen Saliu · github.com/saliu74/wp-portfolios-gallery · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/saliu74/wp-portfolios-gallery/archive/refs/heads/main.zip

Readme

=== Portfolios Gallery === Contributors: saliu74 Author: Muideen Saliu Author URI: https://github.com/saliu74/ Tags: portfolio, gallery, albums, lightbox, media library Requires at least: 6.0 Tested up to: 6.6 Requires PHP: 7.4 Stable tag: 1.1.1 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html

A self-contained WordPress portfolio and album gallery plugin. No custom-field plugin required.

== Description ==

Portfolios Gallery lets you build a Portfolio made up of unlimited Albums, each holding unlimited images pulled straight from your existing Media Library. Drop one shortcode on a page and visitors see a modern, responsive grid of album covers; clicking an album opens an accessible lightbox without a page reload.

= Features =

  • Portfolio -> Album -> Image hierarchy using native Custom Post Types (no custom database tables)
  • Drag-and-drop image ordering and one-click cover image selection
  • Drag-and-drop album ordering within a portfolio
  • Album Categories (e.g. New Builds, Renovations & Additions, Flips, Developments) with client-side filter tabs on the frontend grid
  • Album status flag (Completed / In Progress) with a badge on the card
  • [portfolios_gallery id="123"] shortcode, with an optional columns attribute
  • Optional Gutenberg block with a portfolio picker (server-side rendered, matches the shortcode exactly)
  • Accessible lightbox: keyboard navigation, focus trap, Escape to close, respects reduced-motion
  • Assets load only on pages that actually use the gallery
  • Works independently of ACF, Elementor, WooCommerce, or any other plugin

== Installation ==

  1. Upload the portfolios-gallery folder to /wp-content/plugins/, or install the zip via Plugins -> Add New -> Upload Plugin.
  2. Activate the plugin.
  3. Go to Portfolios Gallery -> Portfolios and create your first portfolio.
  4. Go to Portfolios Gallery -> Albums, create an album, assign it to that portfolio, and add images.
  5. Copy the shortcode shown on the portfolio's edit screen and paste it into any page or post.

== How to create a Portfolio ==

Portfolios Gallery -> Portfolios -> Add New. Give it a title and description, then publish.

== How to create Albums ==

Portfolios Gallery -> Albums -> Add New. Choose the parent Portfolio in the side panel, then use "Select images from Media Library" to add photos. Click any thumbnail to mark it as the cover image, and drag thumbnails to reorder them.

== Using the shortcode ==

[portfolios_gallery id="123"]

Optional: [portfolios_gallery id="123" columns="4"]

== Using the Gutenberg block ==

Add the "Portfolios Gallery" block, then choose a portfolio from the block sidebar.

== Settings ==

Portfolios Gallery -> Settings lets you set the default column count, card corner radius, and toggle the lightbox and photo-count badge globally.

== Troubleshooting ==

  • Album not showing up? Make sure it's Published and assigned to the correct Portfolio.
  • No cover image? Add at least one image to the album — the first image is used automatically until you pick a specific cover.

== Changelog ==

= 1.1.1 =

  • Both album statuses (Completed and In Progress) now show a badge on the frontend card, with distinct colors.

= 1.1.0 =

  • Added Album Categories taxonomy with frontend filter tabs.
  • Added an album status flag (Completed / In Progress) with a card badge.

= 1.0.0 =

  • Initial release.

Read the full README on GitHub →