JSM’s Adobe XMP / IPTC for WordPress

0

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 Cre

Version
Last updated
Active installations
WordPress Version
Tested up to
PHP Version
Rating
Total ratings
Tag

Description

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 &gt; Photography &gt; 
    Field of View &gt; Wide-Angle &gt; 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"]