Plugin Directory

Test out the new Plugin Directory and let us know what you think.

WordPress Portfolio Plugin (WP Portfolio)

A plugin that allows you to quickly and easily show off your portfolio of websites on your wordpress blog with automatically generated thumbnails.


  • Changed new array syntax([]) to old array syntax(array()) to support PHP 5.2+.


  • Replaced deprecated WPPortfolioWidget with __construct().
  • Avoided PHP warning and notice messages on number of admin pages.
  • Changed Secret key check according to new format (allowed special characters, changed maximum length to 32 symbols).


  • Added "Custom Resolution" and "Full-length capture" PRO features support (STW V2 API compatible).
  • Added admin option to use HTTPs instead of HTTP to get the thumbnails.
  • Added Grid layout feature (ability to show portfolio in 2, 3, 4 adaptive columns).
  • Added surrounding DIV to IMG tag to simplify theming.
  • Added lightbox support (ability to show full-sized thumbnail in a lightbox on click).
  • Added Micro (75x56), Tiny (90x68), Very Small (100x75) standard STW sizes.
  • Added "Don't scale" custom image admin option.
  • Added additional checks not to show ShrinkTheWeb error messages to non-ShrinkTheWeb users.
  • Fixed bug when empty $_POST['update'] value ignored by Suhosin PHP extension on website add/edit form.
  • Fixed bug when custom thumbnails were not resized on "WP Portfolio" admin page.
  • Fixed bug when Error showing thumbnail placeholder was shown instead of Queued placeholder on thumbnail refresh.
  • Changed cache directory permissions to 0755 to increase security.
  • Improved "Custom sizes" PRO feature (added STW V2 API compatibility).
  • Improved error handling system to show internal messages on admin pages instead of PHP errors and warnings.
  • Improved logging system.
  • Improved thumbnail fetching by using wp_remote_get() instead of using cURL/fopen directly (removed legacy admin option).
  • Removed "Inside Page Capture" legacy option, because ShrinkTheWeb service now checks if it's available on current account automatically, no special parameter needed. Added feature status checker.
  • Replaced all legacy support links through plugin.
  • Updated outdated .pot file to curremt plugin state.
  • Updated plugin documentation.


  • Added fix for item deletion issue. Please "Force Table Upgrade" if this fix still doesn't work for you.


  • Added support for custom fields (more information in our FAQ section).
  • Replaced deprecated wpdb escape function with wpdb prepare.


  • Added support for embedded thumbnails, which are easier to use and do not rely on caching.


  • Added a new feature where website thumbnails can be refreshed from STW.


  • Added fix for STW for their current URL requests for compatibility.


  • Changed URL for requests to STW to be more reliable.


  • Removed intermediate verification page that was being shown for free acounts, as STW has removed it again. Great news!


  • Added support for transparent GIFs and PNGs
  • Added new setting to force creating tables, due to niggles that some people get when upgrading.


  • Added ability to display single thumbnails instead of only entire groups.
  • Added initial multi-language support.
  • Added feature to show or hide the URL of the thumbnailed site.


  • Thumbnails were staying stuck as 'queued', due to a change in STW's API. So updated fetch code to match new API.
  • Added new code to disable adding pagepix.js to header of site frontend.


  • Found and fixed an issue that if debug logging was enabled, thumbnails would show once, and then fail.


  • Intermediate fix made to code due to issue with table upgrades. If you're getting database errors, just deactivate and activate the plugin to fix.


  • Added fix to ensure edit links are don't wrap in portfolio summary in admin area.
  • Added new error message if you try to use 'Inside Pages' without the the right account.
  • Made small tweak to pagepix.js that was causing intermittant load errors for free users.
  • Added error caching to prevent you using up your allowance with STW if you've got persistant issues (paid accounts only).


  • Massive improvements to error reporting. Rather than just showing 'Thumbnail Queued', a more instructive message is shown.


  • Fixed the broken thumbnails on the frontend of the website that I broke by accident. Sorry! :)


  • Improved methods of loading scripts to avoid them impacting other plugins.
  • Added a field that allows you to edit the date a website was added.


  • Fixed CSS conflict in admin area, which prevented the advanced area from being shown.
  • Updated the FAQ with an issue that's frequently asked above.


  • Fixed bug with thumbnailer overwriting alt tags for images.
  • Improvements to FAQ in documentation, to reflect changes with STW.
  • Catching up with the latest STW account changes, so there are numerous documentation updates.
  • Fixed issue with settings being overwritten when the plugin is updated, if the existing setting is blank. (thanks to MACscr for spotting it).


  • Added ability to change the paging template.
  • Added 'Previous' link in paging.
  • Added more detailed debug logging to help diagnose issues with loading thumbnails.
  • Added support for ShrinkTheWeb's new paid mode with additional security.
  • Shortcodes now work within any of the fields or template of any website.
  • Paid STW Accounts Only - Now supporting ShrinkTheWeb's custom image size.


  • Added custom field option to WP Portfolio
  • Cleaned up summary of websites in admin area.
  • Added server compatibility checker
  • Added forced thumbnail refresh from the website summary page.
  • Added ability to change the cache location.


  • Added ability to duplicate a website.
  • Set default codepage for table (for new installation) to UTF-8
  • Added setting to allow existing users to upgrade to UTF-8


  • Fixed bug with the date being wrong for when a website is added.
  • Added option to allow WP Portfolio CSS to be switched off without clearing CSS styles.
  • Updated FAQ to address a known issue with certain installations.


  • Fixed bug where debug table wasn't being created.
  • Changed menu access level to use the 'manage_options' setting, rather than the deprecated use of a user level number.
  • Fixed bug where errors reported when installing the plugin.
  • Fixed minor issue when saving website order.
  • Added ability to show websites by the date that they were added. e.g. [wp-portfolio ordertype="dateadded" orderby="desc" /]
  • Added a new template tag to get just the thumbnail URL (%WEBSITE_THUMBNAIL_URL%), rather than a full image�HTML tag (%WEBSITE_THUMBNAIL%).
  • Added option to change how custom thumbnails are resized based on style requirements (match only width of custom thumbnails, match only height of website thumbnails or ensure website thumbnail is never larger than other website thumbnails).


  • Added support for ShrinkTheWeb.com's new CDN and API.


  • Added support for internal pages using Shrink The Web's paid-for feature for showing specific pages.
  • Updated documentation to mention new website.
  • Removed old style tag upgrader code.
  • Added debug option that logs requests to help locate problems.


  • Added paging option for showing X number of websites per page.


  • Added support for website ordering.
  • Added image alt tags by default to templates.
  • Fixed bug to show websites by default when adding a new website to the portfolio.


  • Fixed bug with adding a website with a missing description. Thanks to Adam Coulthard for finding the issue.
  • Ensured compliance with WordPress 2.9 specification.
  • Added target="_blank" for the links in the author credit link at the bottom of any rendered portfolio.
  • Added ability to hide/show a given website without having to remove it.


  • Added ability for cached thumbnails to never expire.
  • Added custom thumbnails so that you can override the screenshot with your own image, such as custom graphics and photos. Custom thumbnails are automatically resized to match other thumbnails.
  • Added a timeout of 10 seconds for loading thumbnail images so that pages do eventually load.
  • Added new option [wp-portfolio hidegroupinfo="1"] so that you can hide group descriptions on only certain pages or posts.


  • Changed the code that shows the portfolio to [wp-portfolio] to improve performance, reduce errors and to allow for new functionality.
  • Added a tool to automatically upgrade the old style tags to the new style.


  • Added the ability to render the portfolio from within your theme files in PHP.
  • Added PHP code to allow you to create a random selection of your portfolio from PHP.
  • Moved all documentation into a single documentation page.


  • Removed a debug message
  • Added silent error handling for creating cache directory


  • Fixed the broken regular expression to allow the original method of showing all websites.


  • Added feature to portfolio admin section that allows to only show websites within a certain group.
  • Massive cleanup of code for admin area to reduce errors and allow future features more easily.
  • Added the much requested selective rending of groups. This means you can choose which groups of websites you show on any page.


  • Fixed issue where default thumbnails were not showing when thumbnail is not available.


  • Fixed an issue where saving the template CSS over-writes the group template code.


  • Added option for using cURL rather than fopen for fetching thumbnails to handle strict server security settings.
  • Moved formatting options for portfolio into separate settings section.
  • Created option to enable/disable credit link back to my website.
  • Now handles lack of str_ireplace function if using PHP4.
  • Added button to empty the thumbnail cache.


  • Removed test.css from header when CSS is rendered on page.


  • Initial Release

Requires: 4.3.0 or higher
Compatible up to: 4.7.2
Last Updated: 2 weeks ago
Active Installs: 3,000+


4.1 out of 5 stars


3 of 5 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

1 person says it works.
0 people say it's broken.

0,1,0 100,1,1
100,1,1 100,1,1
100,2,2 100,1,1
57,7,4 100,2,2
67,3,2 100,3,3
100,4,4 100,3,3 75,4,3 60,5,3 100,2,2
100,1,1 67,3,2
100,2,2 100,1,1
50,2,1 100,3,3 100,3,3 0,1,0 50,2,1 100,2,2
100,1,1 50,2,1
100,1,1 100,1,1 100,3,3
100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1