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.


What are the different ShrinkTheWeb account types?

See the different account types from ShrinkTheWeb.

However, you do not need an account with ShrinkTheWeb to use this plugin if you capture screenshots of your websites yourself. You can capture your own screenshots as images, upload those images to your website, and then link to them in the Custom Thumbnail URL field.

I've got a thumbnail error, I've fixed the issue, but the error is still there. Why?

To prevent using up your allowance at STW, we've added error caching. To retry loading a thumbnail, either click on the Refresh link or clear all of the Error Logs in the WP Portfolio admin area.

When should I use the Lock to Account feature in STW?

The Lock to Account is a feature in STW that is required for free accounts and ensures only you can use your account credentials to generate thumbnails. It's essentially extra security. To use the locking feature, you need to go to My Account in STW, then Security. The section marked Lock to account is what you need to take a look at.

  • If you have a free account with STW, the lock to account feature is required and enabled by default. You must configure your allowed referrers to include each website using the service. More details are here.

  • If you have a Basic or Plus account with STW, disabling the tock to account feature is optional, but not recommended.

Why are my thumbnails not showing up straight away?

The Shrink The Web (STW) servers do not create thumbnails straight away once they are requested. It typically takes up to 2 minutes for the thumbnail to be created and made available.

How do I force the thumbnail to be re-captured?

You need to visit the STW website and request it. You can do so here.

My thumbnails are not showing up? Help!

There could be a number of reasons why the thumbnail files are not being downloaded. However, here's a list of things to check.

  • Ensure you've correctly set the STW Access Key ID and STW Secret Key options in the Portfolio Settings.

  • Ensure you've selected the correct STW account type in the Portfolio Settings.

  • Ensure the cache directory exists. Although the plugin tries to create the cache directory, some server set-ups don't let it work. So create the cache directory with permissions 0755 as /wp-content/plugins/wp-portfolio/cache/.

  • Check that you've added some websites to your portfolio.

  • Check that you have [wp-portfolio] in one of your pages. You can specify specific groups later, you just want to check that all of the websites are shown.

  • Ensure that the Website HTML Template, Group HTML Template and Template CSS fields in Layout Settings contain something. If they don't, you can copy the default templates from lower down that page.

  • Check that your web host is using PHP5 and not the outdated PHP4 (that information can be found in the Server Compatibility Checker on the Portfolio Settings page).

  • You may also find the ShrinkTheWeb Troubleshooter helpful.

I'm getting an error - 'other_error - Data from STW was empty.'

If you get the 'other_error - Data from STW was empty.' error, then:

Why are my custom thumbnails not showing up?

  • The most likely reason is that the URL for the image is incorrect. Copy and paste the image URL into your web browser, and make sure you see the image correctly. If you don't see the image correctly, then there's no way that the plugin can load the image correctly.

  • The other likely cause is that cache directory does not exist (see above),

I get the following error, what's going on? (1)

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or
T_FUNCTION or T_VAR or '}' in
on line 30

WP Portfolio only supports PHP5, not PHP4. The error above is due to function class_exists() only existing in PHP5 and not PHP4.

Most web hosting companies have the old PHP4 switched on by default. Just ask them to change your hosting account to PHP5. Some hosting accounts allow you to do this yourself from within your hosting control panel.

I get the following error, what's going on? (2)

Fatal error: Call to undefined function wp_get_current_user() in ...\wp-includes\capabilities.php on line 1059

Some plugins seem to force the include of files in strange orders. Often these are plugins relating to access control or users. To fix this, edit wp-portfolio.php and add the following bit of code at the very top. require_once ABSPATH .'/wp-includes/pluggable.php';.

I've not added this to WP Portfolio in the main code, simply because it might break other plugins. It shouldn't be necessary to add this line at all, because WP Portfolio doesn't do anything particularly exotic in the code.

I get an Unknown column 'something' error. What up?

This is usually due to the plugin tables not being created properly. In Portfolio Settings, click on the Force Table Upgrade button.

When looking at the setings page, I just get a blank page or errors.

This has been encountered when an open_basedir restriction in effect security restriction is in place, typically for those with plesk-based hosting. It's probably justified for standard users as it prevents them from accessing unwanted dirs. However, it may need to be turned off by people who want to do more with their website. The key for all those interested is to turn off "open_basedir restriction" in their Plesk hosting account. Speaking to your hosting company if you need help with this issue.

Features and Support

How could I show my portfolio in 2 (3, 4) columns using WP Portfolio module?

  • Wp-portfolio supports adaptive grid layout out-of-box. To show website thumbnails in 2 columns use shortcode: [wp-portfolio columns="2"].
  • To show website thumbnails, in 3 columns use shortcode: [wp-portfolio columns="3"].
  • To show website thumbnails, in 4 columns use shortcode: [wp-portfolio columns="4"].

Does WP Portfolio support paging?

Yes it does. To show 3 websites per page, use [wp-portfolio sitesperpage="3"], or to show all websites, just use [wp-portfolio] as normal. Check the documentation for full usage details.

What is the WP Portfolio group syntax?

  • To show all groups, use [wp-portfolio]
  • To show just the group with an ID of 1, use [wp-portfolio groups="1"]
  • To show groups with IDs of 1, 2 and 4, use [wp-portfolio groups="1,2,4"]

Please note that the order of the group numbers e.g. "1,2,3" does not indicate the order in which they are shown. The order of IDs in the brackets are in fact ignored. The order of the groups is determined by the order value for each group in the admin area.

** What is the WP Portfolio syntax to show one thumbnail at a time? **
* To show just one website thumbnail, use [wp-portfolio single="1"]. The number is the ID of the website, which can be found on the WP Portfolio summary page. * To show a specific selection of thumbnails, use their IDs like so: [wp-portfolio single="1,2"]

Does WP Portfolio support shortcodes

Yes it does. Shortcodes can go anywhere in the website template or website details.

In the settings, you can only use 6 sizes of thumbnails; Micro (75 x 56), Tiny (90 x 68), Very Small (100 x 75), Small (120 x 90), Large (200 x 150) and Extra Large (320 x 240). Is it possible to get custom image size of 550 x 227?

Yes, but it requires the ShrinkTheWeb "Custom Sizes" PRO feature upgrade.

Can I add custom fields to my portfolio? Yes. To add custom fields you will need to add to wp-content/themes/%YOUR_THEME%/functions.php (where `%YOUR_THEME% is the name of the wordpress theme you are using), here you should use add_filter to add a function to 'wpportfolio_filter_portfolio_custom_fields'. Your function will need to return an array containing an associative array for each item, for example:

// Function to add custom fields to the wp portfolio plugin
function portfolioPlugin_filter($fields) {
    // A list of custom fields we want
    $fields = array(
        // Field 1: Type of project work.
            'name'            => 'work_type',
            'template_tag'    => 'website_project_type',
            'type'            => 'textarea',
            'label'           => 'Project Type',
            'description' => 'What kinds of work did this project need?'
        // Field 2: Project completion date.
            'name'            => 'project_end_date',
            'template_tag'    => 'website_project_end_date',
            'label'           => 'Completion Date',
            'description' => 'When did this project finish?'
        // Field 3: Name of the project customer.
            'name'            => 'customer_name',
            'template_tag'    => 'website_customer_name',
            'type'            => 'text',
            'label'           => 'Customer',
            'description' => 'How was it you produced this project for?'
    // Send the information on it's way
    return $fields;
// Attach the function to the 'wpportfolio_filter_portfolio_custom_fields' filter
add_filter('wpportfolio_filter_portfolio_custom_fields', 'portfolioPlugin_filter');

The name and template tag properties are required, without them we can't generate your custom fields and though not compulsory we highly recommend adding a label and description to guide additions.


How do I hide the category title and description on the portfolio page?

Go to Layout Settings in the WP Portfolio admin section. Change the value of Group HTML Template to   and save your settings. That will remove the category details from any page showing your portfolio of websites.

Requires: 3.5 or higher
Compatible up to: 4.6.2
Last Updated: 4 months ago
Active Installs: 3,000+


4 out of 5 stars


0 of 1 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