Easy Photography Portfolio


Building a photography portfolio for WordPress should be easy. So we made a plugin to help you with that!

Quick Overview

Easy Photography Portfolio is based on the idea of albums with images that can optionally be grouped in categories!
By default, albums and images are displayed in a masonry gallery. You open up an album to see all the images. then click on an image to look at it closer.
I think it might be easier to explain with a demo.

Plugin Demo

Easy Photography Portfolio is extremely flexible, from the most basic to completely custom designs.

📌 Demo: Twenty Seventeen Portfolio

Twenty Seventeen Theme Demo works out of the box with Easy Photography Portfolio. This demo demonstrates the basic default plugin settings and layout.

But there is a lot you can do to customize Easy Photography Portfolio in themes, here are a few more examples…

📌 Demo: Minimalist Portfolio

Minimalist Portfolio is a free WordPress theme — customized to look great with Easy Photography Portfolio plugin!

📌 Demo: Premium WordPress Themes

The plugin is customizable to an almost unrecognizable degree.
Here are a few examples of how we’ve utilized the plugin in our premium photography portfolio themes:

Our Premium WordPress themes work really great with Easy Photography Portfolio!

📚 Setup Tutorials

The plugin name gave it away — it’s really easy to set up a portfolio with it. And yet, here are some extra resources for you:

🎥 Video Tutorial

If detailed documentation and guides aren’t enough for you, watch the video tutorial:

Designed for Photographers

We love the WordPress community and wholeheartedly agree with the WordPress Philosophy.

Great software should work out of the box, without the user having to adjust oceans of buttons and knobs.
That’s why Photography Portfolio is designed to be as easy to use as possible.

Photography Portfolio plugin is founded upon years of experience in building Premium WordPress Themes for Photographers. We’ve seen it all, great and not-so-great websites, big names, and absolute beginners. We have crystallized the formula of a high-quality portfolio into a simple WordPress plugin that you can use with any WordPress theme or your custom WordPress site!

It all comes down to the simple structure of a real Portfolio book.

You own a Portfolio album for, let’s say your Wedding Photography. If you happen to do street Photography too, you also probably have another album that has only your best street photography prints.

That’s exactly what Photography Portfolio does for you online. You create albums, add images, and in case you have a huge portfolio, you can categorize albums too.

Then your visitors are able to open any album, quickly scan all of the images, or view them one by one. Simplicity is key!

Our Story

We have been designing WordPress Portfolio themes for Photographers for years. In that time we’ve distilled the simplest and most effective ways of building an online Portfolio.

We decided that it is long overdue to give back to the community. So we built a reliable plugin that anyone can use, be it a new Photographer, an existing Customer, or a Developer. At the same time we built the Photography Portfolio Plugin so that we can use it ourselves for our existing customers, yet making it flexible enough so that it can be used in any theme.

Developed for Extensibility

Out of the box, Photography Portfolio is built using Masonry Layout (think Pinterest). Quite simply — it’s the layout most easily portable to any website layout while keeping the feel of the brand.

Warning: Strong developer language ahead.
For some, a masonry layout might not be enough, it sure isn’t enough for our Photography WordPress themes, because of that, this plugin is packed with Actions and Filters. Not only in PHP but also the JavaScript side.
You can easily extend the plugin with your own custom archive and single-view layouts. Customization is easy as Photography Portfolio plugin templates are based on get_template_part() function, similar to the way WooCommerce plugin has a custom template function. That brings a lot of customization power to the table. Pick any part of the view, and append your own template bits or completely rewrite the templates.

The JavaScript side is also very opinionated and easily extensible. You can use filters and actions to either modify the existing functionality, for example modifying the core masonry layout just a bit or completely initialize a brand new layout (like Packery or Horizontal Scroll). If you decide to build a custom view, you can utilize the existing JavaScript hook structure to let the plugin handle all the little things for you.

WordPress Themes

We also build premium WordPress themes for Photographers. Have a look at our Portfolio and maybe you fall in love with one of them!

Because we make money designing WordPress themes, this is not «Photography Portfolio Lite with a million up-sells. This is a fully featured Photography Portfolio plugin with albums, images, categories, a 2 popup gallery options and even video support.

We respect our users and believe that one can recognize quality on their own, without being bombarded with constant «buy extra functionality» junk. We know we build awesome ship, now you know it too. You can have a look at our premium stuff when you feel like it, if not — that’s cool too. Especially if you’re just starting out, you might have to cut some corners and bootstrap everything on your own, and even then, we truly believe this plugin is going to do wonders for you! Pick a simple minimalistic theme, install the plugin, and enjoy a clean portfolio website that you can grow on your own!


This plugin requires at least PHP 5.4

You can read the full setup guide here or watch the video tutorial

  1. Upload «Photography Portfolio» plugin to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Add a few Portfolio entries in «Portfolio -> New Portfolio Entry»
  4. Make sure your portfolio entries have a thumbnail.
  5. That’s it! Enjoy your Portfolio!

Часто задаваемые вопросы

Installation Instructions

This plugin requires at least PHP 5.4

You can read the full setup guide here or watch the video tutorial

  1. Upload «Photography Portfolio» plugin to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Add a few Portfolio entries in «Portfolio -> New Portfolio Entry»
  4. Make sure your portfolio entries have a thumbnail.
  5. That’s it! Enjoy your Portfolio!


How to use the plugin?

It’s quite easy to set up the plugin. Here are a few resources:

There is also a 7 minute video tutorial:

Is this Developer friendly? Any examples?

Everything code-related can be found on GitHub and Github Wiki
If you have questions, you can ask them in Support Forums or in GitHub issues or tweet me @justnorris


Fantastic portfolio plugin!

By far the simplest, and best looking portfolio plugin I’ve used. Super easy to add galleries, and it’s very beautiful. Works fantastic on desktop and mobile versions. Flawless!

Easy to implement in your theme

I love how adaptable this plugin is and how easily it can be implemented in your theme by using templates. Also, the maker of this plugin replied quickly to all my questions!


looks good… functionality crumbles, too many bugs, too few answers.

Посмотреть все 13 отзывов

Участники и разработчики

«Easy Photography Portfolio» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:


«Easy Photography Portfolio» переведён на 1 язык. Благодарим переводчиков за их работу.

Перевести «Easy Photography Portfolio» на ваш язык.

Заинтересованы в разработке?

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

Журнал изменений


  • As promised, a bug was introduced in 1.3.0 🐞
  • Fixed bug where portfolio would completely break down if pop-up galleries were disabled
  • Fixed bug where Admin JavaScript didn’t load because it didn’t exist
  • No additional bugs introduced in this version 😇


  • It’s finally here! You asked for it, and now it’s here! Drumroll please!
  • 🥁 🥁 🥁 🥁 🥁 🍗 🥁
  • 🎉 Added option to set a single portfolio gallery as your home page!
  • 🎉 Added option to set a portfolio category as your home page!
  • 🎉 Added option to hide gallery captions in post-view while showing them in pop-up galleries!
  • Also, some under-the hood moficiations for the way galleries are handled. Makes it easier to style the plugin
  • Also, fixed bugs 🐛
  • Most probably introduced a bug or two with the new homepage functionality!
  • What do you call a lazy doctor? Dr. Do Little. 👀
  • 🛠 Deprecate phort_entry_data_attribute in favor of phort_entry_data_attributes in /templates/archive/entry.php template


  • Fixed bugs. 🐜


  • Improve custom portfolio query compatiblity
  • Improve default layout styling


  • Code clean-ups 🛁
  • Add new hook phort/layout/init — run before the view genertation has started
  • Make masonry fit the PP_Wrapper from edge to edge


  • Only create «Easy Photography Portfolio» page when «Portfolio» doesn’t exist
  • Add function phort_get_meta()


  • Automatically open the popup gallery based on the URL 🤘
  • Add an alternative pop-up gallery — PhotoSwipe 🖼
  • Add full support for captions and descriptions 🎉 🎉 🎉
  • Rename app[.css|.js} to photography-portfolio[.css|.js]
  • Enqueue libraries separately instead of bundling everyting into libs.js
  • Don’t rely on underscore.js anymore
  • Don’t load jQuery Masonry when it’s not needed
  • Increase gallery z-index to fix popup gallery display poorly coded themes


  • Fix plugin in themes that don’t load jQuery
  • Add password protection support


  • Fix compatibility issue with WooCommerce. Thank you @miraaz for reporting it.


  • Increase the /portfolio/ archive limit from default WP setting to 100


  • Fix lightGallery social sharing issues, for real.
  • Close the whole gallery on ESC key
  • Add options to disable thumbnails or hide them by default
  • CSS Improvements
  • Reorganize settings this much -> 👌
  • Make a few more strings translatable


  • Translations are now working!
  • Trigger phort.lazy.loaded_item after each lazy-loading item has loaded
  • Fix lightGallery social sharing issues
  • Improve inline documentation
  • Better masonry alignment


  • Better default setting management. Defaults are now used by….default. Even before the options object is populated. Yay.
  • Set image height to auto, because as it turns out some themes don’t do that out of the box.
  • Introduce phort_set_defaults, deprecate setting defaults with hooks
  • Refactor a lot of code, hopefully making it easier to read
  • You’re actually reading this. I like you. Here, have a cookie 🍪


  • Show a message with a link to a setup guide when the plugin is activated
  • Add a default portfolio entry if none already exist
  • Add a default portfolio page and automatically set it up in the settings
  • Add a settings link in plugins page
  • Update Tested up to tag


  • Add option to disable the popup gallery
  • Add WPML Compitability ( thanks to @vukvukovich from WPML )
  • Update CMB2


  • Make sure images have 100% max width, some themes don’t do that by default
  • Add actions for to make it easier to tap into the templates: phort/{archive|gallery}/loop/{start|end}


  • Make sure all top level template wrappers utilize phort_class()
  • More elaborate plugin settings with dropdowns instead of checkboxes
  • Add permalink class .PP_Entry__permalink


  • Always make sure an image exists before trying to display it


  • Add function phort_is_front_page()
  • Add play button overlay on videos
  • Validate layouts before returning phort_slug_current() value


  • Correctly set-up postdata in single portfolio layouts
  • Revolutionary new UI when creating a new portfolio entry ( fixed subtitle alignment )
  • Hide layout setting dropdowns if there are no layouts to choose from.
  • Clarify code and comments
  • By default load 100 portfolio entries. If you need more, you’re responsible for displaying them properly. Why would you need a portfolio with more than 100 albums ?
  • Remove filter phort/get_template.
  • Introduce filter phort/get_template/{$base}
  • Allow themes/plugins to modify EPP Defaults


  • Fix broken portfolio links
  • Improve JavaScript hooks
  • Other minor improvements


  • First Release!