JSM's Adobe XMP / IPTC for WordPress

View the Project on GitHub jsmoriss/adobe-xmp-for-wp

JSM's Adobe XMP / IPTC for WordPress

Plugin NameJSM's Adobe XMP / IPTC for WordPress
SummaryRead Adobe XMP / IPTC information from Media Library and NextGEN Gallery images, using a Shortcode or PHP Class Method.
Stable Version1.4.0
Requires PHP5.6 or newer
Requires WordPress4.2 or newer
Tested Up To WordPress5.4.2
Tags / Keywordsadobe, xmp, xmpmeta, iptc, rdf, xml, lightroom, photoshop, media, library, nextgen, gallery, image, shortcode, function, method, meta data


Retrieve the following Adobe XMP / IPTC information from images in the WordPress Media Library and NextGEN Galleries:

The extracted XMP / IPTC data is cached on disk to improve performance and is refreshed if / when the original image is modified.

You can use the plugin in one of two ways; calling a method in your theme template(s) or using the [xmp] shortcode in your content.

There are no plugin settings — simply install and activate the plugin.

Retrieve XMP Data as an Array

$adobeXMP =& adobeXMPforWP::get_instance();

 * Some default class properties can be modified.
$adobeXMP->use_cache = true;    // default
$adobeXMP->max_size = 512000;   // default
$adobeXMP->chunk_size = 65536;  // default

 * The $id can be a WordPress Media Library image ID,
 * or NextGEN Gallery image ID in the form of ngg-##.
$image_xmp = $adobeXMP->get_xmp( $id );

echo '<p>Photograph by '.$image_xmp['Creator'].'</p>';

You can also hook the 'adobe_xmp_cache_dir' filter to modify the default cache directory.

Include a Shortcode in your Post or Page

[xmp id="101,ngg-201"]

This shortcode prints all the XMP information for Media Library image ID "101" and NextGEN Gallery image ID "201". The XMP information is printed as a definition list <dl> with a class name of xmp_shortcode that you can style for your needs. Each <dt> and <dd> element also has a style corresponding to it's title - for example, the "Creator" list element has an xmp_creator class name. Here's an example of the definition list HTML:

<dl class="xmp_shortcode"> <dt class="xmp_credit">Credit</dt> <dd class="xmp_credit">JS Morisset</dd> <dt class="xmp_source">Source</dt> <dd class="xmp_source">Underwater Focus</dd> <dt class="xmp_hierarchical_keywords">Hierarchical Keywords</dt> <dd class="xmp_hierarchical_keywords">What &gt; Photography &gt; Field of View &gt; Wide-Angle &gt; Fish-Eye</dd> </dl>

The shortcode can also take a few additional arguments:

Define which XMP elements to include, for example:

[xmp id="101" include="creator,creator email"]

Exclude some XMP elements, for example to print all XMP elements, except for the "creator email":

[xmp id="101" exclude="creator email"]

Include / exclude the <dt> definition titles.

[xmp id="101" show_title="no"]

Include / exclude empty <dd> definition values.

Exclude a list of (case incensitive) keywords, for example:

[xmp id="101" not_keyword="who,what,where"]

To exclude a hierarchical keyword list, use hyphens between the keywords, for example:

[xmp id="101" not_keyword="who,what,where,who-people-unknown"]


Automated Install

  1. Go to the wp-admin/ section of your website.
  2. Select the Plugins menu item.
  3. Select the Add New sub-menu item.
  4. In the Search box, enter the plugin name.
  5. Click the Search Plugins button.
  6. Click the Install Now link for the plugin.
  7. Click the Activate Plugin link.

Semi-Automated Install

  1. Download the plugin ZIP file.
  2. Go to the wp-admin/ section of your website.
  3. Select the Plugins menu item.
  4. Select the Add New sub-menu item.
  5. Click on Upload link (just under the Install Plugins page title).
  6. Click the Browse... button.
  7. Navigate your local folders / directories and choose the ZIP file you downloaded previously.
  8. Click on the Install Now button.
  9. Click the Activate Plugin link.

Frequently Asked Questions