WordPress.org

Plugin Directory

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

JSM's Adobe XMP / IPTC for WordPress

Read Adobe XMP / IPTC information from Media Library and NextGEN Gallery images, using a Shortcode or PHP Class Method.

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

  • Creator Email
  • Owner Name
  • Creation Date
  • Modification Date
  • Label
  • Credit
  • Source
  • Headline
  • City
  • State
  • Country
  • Country Code
  • Location
  • Title
  • Description
  • Creator
  • Keywords
  • Hierarchical Keywords

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 > Photography > 
    Field of View > Wide-Angle > Fish-Eye</dd>
</dl>

The shortcode can also take a few additional arguments:

  • include (defaults to "all")

Define which XMP elements to include, for example:

[xmp id="101" include="creator,creator email"]
  • exclude (defaults to none)

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

[xmp id="101" exclude="creator email"]
  • show_title (defaults to "yes")

Include / exclude the <dt> definition titles.

[xmp id="101" show_title="no"]
  • show_empty (defaults to "no")

Include / exclude empty <dd> definition values.

  • not_keyword (defaults to none)

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"]

Requires: 3.7 or higher
Compatible up to: 4.7.1
Last Updated: 1 week ago
Active Installs: 100+

Ratings

5 out of 5 stars

Support

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

Got something to say? Need help?

Compatibility

+
=
Not enough data

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

100,1,1 100,1,1 100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1 100,1,1
100,1,1
100,1,1
100,1,1
100,1,1 100,1,1
100,1,1
100,1,1
100,1,1 50,2,1 100,1,1
100,1,1