Lots has changed since the last article I made about WP-prettyPhoto usage, and so it is time to revamp the instructions, explain new features and hopefully be a bit more thorough. First off, let me first mention the following thing: prettyPhoto is written by Stéphane Caron. Here are some related links to avoid repeating them throughout this article: Stéphane’s blog, prettyPhoto’s project page, prettyPhoto on GitHub, Stéphane on Twitter, WP-prettyPhoto at WordPress Extend, WP-prettyPhoto Support Forum.
Revision History: This article is intended to document the current WP-prettyPhoto (1.5.1) & prettyPhoto (2.5.2) versions.
Now for some organization, here are the topics that will be discussed in this article:
- 1. Technical Information
- 2. Installing WP-prettyPhoto
- 3. Using WP-prettyPhoto
- 3.1. On Images
- 3.2. On Videos (MOV) and Flash (SWF)
- 3.3. On YouTube Videos
- 3.4. On External Sites (iFrame)
- 3.5. Shortcode API Calls
- 4. Examples
1. Technical Information
The idea behind WP-prettyPhoto is to avoid having to use Lightbox to display pictures. Lightbox is based on the Prototype JavaScript library, and most WordPress plugins tend to use jQuery. Using WP-prettyPhoto thus allows you to avoid loading multiple libraries to perform a single task. Stephane Caron developed prettyPhoto because the jQuery Lightbox clones, at the time, were close enough to the real Lightbox.
prettyPhoto uses attribute hooks to bind itself on elements to display. In other words, if prettyPhoto finds a rel attribute inside a link pointing to one of its supported format (bmp, gif, jpg, jpeg, png, swf, mov), and that rel attribute matches the one prettyPhoto looks for, it will know that link is meant to be displayed within a prettyPhoto box. Since prettyPhoto 2.4, it also looks for simple text links with the configured rel attribute and the string “iframes=true” within the target URL. Since prettyPhoto 2.5, an API is available.
2. Installing WP-prettyPhoto
The installation of WP-prettyPhoto is pretty straightforward, as with most WordPress plugins. Once you have downloaded the current version of WP-prettyPhoto, you have two options:
- Use WordPress’ builtin plugin installation system located in your WordPress admin panel, labeled as the “Add New” options in the “Plugins” menu to upload the zip file you downloaded
- Extract the zip file and upload the resulting “wp-prettyphoto” folder on your server under “wp-content/plugins/”.
All you need to do after that is navigate to your blog’s administration panel, go in the plugins section and enable WP-prettyPhoto.
For more information, see the “Installing Plugins” article from the WordPress Codex.
3. Using WP-prettyPhoto
There are several ways to use WP-prettyPhoto on your blog. All of them can be automatically achieved by enabling the “All Formats” option in the “Automate” section of the WP-prettyPhoto settings, located inside WordPress’ Media settings page. All of the “Automate” options will trigger automatic activation of the specific format. That is how to use WP-prettyPhoto automatically. However, some of prettyPhoto’s formats require specific instructions. For all formats, you will need to do the following: Insert the media you want prettyPhoto to bind itself on in your post or page, surround it by a link and make the HREF attribute point to the original media Then, simply add WP-prettyPhoto’s configurable REL string to the link.
It is important to note that there is also a way to exclude specific elements from being displayed in prettyPhoto. To do so, simply make the link point to a new window using “_blank” as the value of the link’s TARGET attribute.
3.1. On images
Manually using prettyPhoto on images is simple. If you want to display a title inside the prettyPhoto box, make sure the “Display title” setting is activated. When active, prettyPhoto will use whatever is inside the image’s ALT attribute. To display a description, use the link’s TITLE attribute.
To manually insert a prettyPhoto gallery, the process is similar. All you need to do is make sure all your images have the same REL attribute with a slight modification. The REL attribute should define the gallery’s unique name between [square brackets]. Doing so will allow prettyPhoto to display next/previous links as well as display the current picture count and the total pictures found in the gallery.
3.2. On videos and flash
The process of linking prettyPhoto to your video files is the same as images. Link to the .swf or .mov file, then specify the width and height. In the case your flash needs specifics parameters, add &flashparams to the URL specify the parameters.
3.3. On YouTube Videos
To load a YouTube video, simply link to the YouTube video url. You can also add “&width” and “&height” to specify the sizes, if not provided, default dimensions will be applied.
3.4. On External Sites
To load sites in an iframe inside prettyPhoto, link to the desired website and add the following params. “?iframe=true”, to tell prettyPhoto to open the page in an iframe and “&width=300″ “&height=300″, to specify the iframe dimensions.
3.5. Shortcode API Calls
Since WP-prettyPhoto 1.5 and prettyPhoto 2.5, API calls are supported through WordPress shortcodes. There are two distinct shortcodes available to users, please note that shortcode usage must first be enabled in WP-prettyPhoto settings.
- [ppo img="" title="" desc="" button="false"]Text[/ppo]: Opens a prettyPhoto box using img value for image source, title value for title, desc value for description. If you want to display a button instead of a link, set the button parameter to true.
- [ppg files="" titles="" desc="" button="false"]Text[/ppg]: Opens a prettyPhoto gallery using files values for images, titles value for image titles and desc values for descriptions. All values should be comma-separated and ordered properly. The second desc item corresponds to the description of the second files item. Here again, you can output a button instead of a link using button=”true”.
4. Examples
- Simple image hook with no title and with description.
<a title="Simple image hook with no title and with description." href="http://blog.fusi0n.org/wp-content/uploads/2009/05/avatar-trans.png">Simple image hook with no title and with description.</a>
- YouTube video
<a href="http://www.youtube.com/watch?v=oHg5SJYRHA0" rel="wp-prettyPhoto">YouTube video</a>
- Flash Movie
<a href="http://movies.apple.com/movies/weinstein/nine/nine-tlr1_h.480.mov?width=480&height=204" rel="wp-prettyPhoto">Flash Movie</a>
- External Site
<a href="http://m.reddit.com/?iframe=true" rel="wp-prettyPhoto">External Site</a>




March 10th, 2009 at 7:34 pm
@Retrocluctch It’s probably because the way you load jQuery (with Google) doesn’t let Wordpress know about it (ie jQuery is not registered) and therefore, when outputting the prettyPhoto JS, there’s a jQuery dependency that fails to be met. Glad you got it working
March 10th, 2009 at 9:25 pm
@pluc I’m having the same problem as Derek, but I am running PHP 5. So I’m pretty confused. Ideas?
March 14th, 2009 at 2:09 pm
@surtin I have no idea, it basically means that it doesn’t like static methods, are you sure you’re running under 5? Maybe you have both activated and you’re running under 4…?
March 22nd, 2009 at 11:53 pm
Hi
i can’t get it to work, i’ve been checking it for 2 days and can’t figure out what am i doing wrong….
(marmolesleon.com/servicios)
Any idea?
April 2nd, 2009 at 3:59 pm
@pluc: Has the “show titles” bug been fixed? Or can you let me know how to manually stop the titles from being shown?
April 3rd, 2009 at 3:27 pm
@onelargeprawn It’s been fixed as of… 1.1.4 but for some reason it’s not live on WordPress extend… I just noticed. I’ll push it now, look for it in 15 minutes.
It’s live now, sorry for the delay.
Edit: I had changed the version in readme.txt but not in wp-prettyphoto.php…. WordPress has such a good version control system
April 5th, 2009 at 5:18 pm
Hi pluc: Thanks for the update. I’ve installed it on my blog and it’s working great!
April 10th, 2009 at 7:12 pm
For some reason this doesn’t seem to work right in firefox 3. It opens the image in a new window after it partially animates. Any idea why?
http://kwigbo.com/wp/games/
April 11th, 2009 at 10:35 am
@kwigbo It was developed on Firefox 3.Check your source code, make sure everything is as it should be (JS loaded, link rel value, etc).
Actually, I just checked your site and everything works perfectly from here (Firefox 3.0.8 on Ubuntu Jaunty)
April 21st, 2009 at 4:06 pm
@pluc: Thanks very much – works great now! Cheers.