Adding Dublin Core metadata to WordPress posts

Automated disclaimer: This post was written more than 16 years ago and I may not have looked at it since.

Older posts may not align with who I am today and how I would think or write, and may have been written in reaction to a cultural context that no longer applies. Some of my high school or college posts are just embarrassing. However, I have left them public because I believe in keeping old web pages aliveā€”and it's interesting to see how I've changed.

WordPress does not have a built-in mechanism for automatically adding standardized metadata to pages. Today I wrote a plugin to add Dublin Core metadata to all posts and pages. It currently supports the following metadata:

  • Site name as DC.publisher
  • Site URL as DC.publisher.url
  • Post title as DC.title
  • Permalink as DC.identifier
  • Date created as

Install it by downloading the latest version from the DC 4 WP page (version 0.2 at this time), unpacking the .zip archive, and dropping the .php file into your WordPress installation's wp-content/plugins folder.

This is my first plugin, so any and all constructive feedback would be greatly appreciated!

Newer versions and changelog

(This was originally a separate page, but I moved it here in 2020 for archiving.)

This plugin implements some Dublin Core metadata elements for WordPress.

Download the current version (0.4) as a zipped php file.


Features a small admin screen in Options. (Allows admin to set License metadata.)

Adds the following Dublin Core metadata elements to posts and pages:

  • Site name as DC.publisher
  • Site URL as DC.publisher.url
  • Post title as DC.title
  • Permalink as DC.identifier
  • Date created as
  • Author name as DC.creator
  • Categories as DC.subject (semicolon delimited, excludes default category)
  • If WordPress 2.1 or higher, DC.language
  • If license is set, DC.rights.license
  • If license is set, author name as DC.rights.rightsHolder

Future work

At some point I'd like to add in the following metadata elements:

  • Post subtitle as DC.title (again)
  • Date modified as
  • Tags (of Ultimate Tag Warrior) as DC.subject? Perhaps.

Change log

Version 0.4

Released on 2007-1-27, version 0.4 [zip format] adds DC.language, DC.rights.rightsHolder, and DC.rights.license. Joan Junyent has joined the list of contributors. Default category is now excluded.

Version 0.3.1

Released on 2007-1-11, version 0.3.1 [zip format] adds DC.creator and DC.subject, thanks to Salvatore Vassallo's version 0.3.

Version 0.2

Released on 2006-10-1, version 0.2 [zip format] includes basic DC support but has no admin interface. It supports the following metadata elements:

  • Site name as DC.publisher
  • Site URL as DC.publisher.url
  • Post title as DC.title
  • Permalink as DC.identifier
  • Date created as

Responses: 4 so far Feed icon

  1. Brain on Fire » Blog Archive » My first collaboration! says:

    [...] A while back I wrote a very simple plugin for WordPress that would automatically insert Dublin Core metadata into the header of my blog posts. I released it under a free license (as version 0.2) with the hope that someone more proficient in WordPress than I would come along and build on my work. And someone did! [...]

  2. Saket says:

    Hey. Thanks for writing the plugin, I've just installed it.

    But I have a question, in its settings page, what am I supposed to write in "Add metadata dublincore License:" ?

  3. Tim McCormack says:

    Saket: If you have a license for your posts (such as some Creative Commons license) you can put that information there.

  4. ashok says:

    Hi, this is a very useful plugin, however it takes into account only some of the dc parameter. there was one issue regarding author metadata. even if i fill in the author information in the plugin, the header shows defalut author as admin. Also no provision for adding multiple authors, authors affiliation, etc. thanks again for this plugin

Self-service commenting is not yet reimplemented after the Wordpress migration, sorry! For now, you can respond by email; please indicate whether you're OK with having your response posted publicly (and if so, under what name).