Confessions of a WordPress Trac Ticket Lobbyist

Robert Dall
Robert Dall

This post was contributed by Robert Dall. Studying web design in college, he stumbled upon early in his career. Dall made the natural progression from to the self-hosted version of WordPress. Since then, he’s worked almost exclusively with WordPress using it as a blog, CMS, portfolio, and e-commerce. He’s also an avid photographer.

Coming in WordPress 4.2 is something that has been long overdue and something I have encountered as a former photographer working with WordPress. When you import a photo into WordPress that has IPTC data, the caption populates the description field and not the caption field.

This is mainly due to the fact that the IPTC (International Press Telecommunications Council) calls the caption the description. When WordPress integrated all of the camera metadata (also called EXIF meta data) and caption data, they mistakenly populated the caption field into the wrong field.

In this blog post, Samuel “Otto” Wood points out the problem and created a plugin to address the issue. While this is a good fix for projects like the new Art Wolfe website, I knew WordPress could be easier to use for photographers who use the IPTC data fields. Those who don’t wouldn’t notice a change.

The Benefits of This Small Change

I think media organizations that use WordPress and those that might in the future, will benefit from this industry standard being properly integrated into something that powers more than 20% of the internet.

Photography plugin developers such as WooCommerce Photography, could really benefit from this small change to core as similar plugins inherently use the built-in media uploader in WordPress. The problem is that it requires unit tests to be written and some changes to WordPress core, stuff that is well beyond my WordPress knowledge.

The Art Wolfe project has allowed me to work with a great WordPress developer named Sergey Biryukov. I knew if I gathered enough interest in a patch, I could approach Biryukov with the idea that we might get this fix into WordPress and put a seven-year-old trac ticket to bed.

What I Did to Get This Issue Fixed

I didn’t write a lick of code, write the ticket, and no props are coming my way, nor should they. It was Biryukov who wrote the final patch and got it committed with props to @beaulebens, @ericlewis, and @bendoh.

I attended every core meeting until it was committed. Whenever there was an “open discussion” time during the meeting, I mentioned the ticket. I also let Drew Jaynes, 4.2 release lead and former photographer, know of my intentions. I tested the patch on a number of heavily used photography plugins to see if there would be any adverse impact on them. Subsequently, I haven’t found any that were directly attributed to the patch.

Since I am mainly self-employed, I had the ability to lobby this ticket during what would be considered working hours and, like Rick Astley, “I was never going to give you up.” So photographers rejoice! Caption information will be automatically imported into WordPress and your work flow of importing, editing, and captioning using the IPTC standard will be completely integrated into WordPress.


8 responses to “Confessions of a WordPress Trac Ticket Lobbyist”

  1. This is a great example for anyone interested in helping WordPress evolve. Not everyone can be or partner with a great developer, but sometimes just pointing out the issue can attract the right focus.

    My workload has kept me from major involvement for years, but occasionally there’s a few moments to spare on little bugs and low hanging ugly fruit. It could a simple test or comment, but sometimes even a one-line patch can make someone’s day.

    It’s easy if you’re willing to read a little on how the WordPress developers work, how they communicate, and what their current goals are. Once you understand and IF you are respectful of those things, sometimes your biggest WordPress aggravation will disappear with a poof! of a changeset.

    Of course you can see it happen in the Trac trouble ticket system every day, but it was nice to read. :)

      • Hi Robert,
        Thanks for the work you’ve done on all of this.
        One thing that I’ve found amazing is the Media Library – I’m a professional photographer and on my website (non-WP, but would like it to be WP – BurleighPhoto-dot-com) I can have up to 1000 images for one wedding – I usually produce sections with html5 slide shows that run – how can WordPress have one location for images? From what I can understand there’s no way to have directories and subdirectories under the media library – for uploading my photos I would like to be able to have something like weddings/j-b/getting ready/then the photos – it would be a nightmare to find and separate all the various photos on my site if they were in one directory.
        At the moment I use WOWSlider where I create each slideshow outside of WP and it outputs a .zip for that section that you can place anywhere in WP eg: wp-content/themes/assets/wowo-sliders/actual slider-01, 02 etc, then from the WOWSlider plugin in WP you import the actual slideshow you need and place it on the page with a shortcode – done! See philiplaura2013-dot-com as an example
        Any idea how we can get WP to broaden their photo upload locations

  2. “I think media organizations that use WordPress and those that might in the future, will benefit from this industry standard being properly integrated into something that powers more than 20% of the internet.”

    Unless pretty enormous leaps in the software are made you will see these numbers changing as early as later this year, especially if Adobe releases their Online Publishing platform. I got a brief glimmer at in on Friday as a business in town I’ve done some consulting for showed me some videos (they are an Adobe Partner and have been for years… Long story, I am in Kodak and Xerox’s home town so “imaging” has always been bigtime here).

    For what I saw, Wix, Weebly, can all go home. They are all done. Literally. The software is simply brilliant.

    I’ve already done some changes to the “core” code to suit a project we are working on. Other sections I need well… gut basically.

    I’ve recoded most of the “template” based functions in WP core as they exact a heavy cost when looking for files and have most working with our Smart Cache now. Anytime any code does’nt matter if its PHP or C# is going out to “see” if a file exits on a mechanical device there is a performance penalty. These are among the slowest operations that can be performed. WP code is “Clean” which is good. Whats the smart cache? Its a Apache module we coded for use with Joomla, its mostly coded in Assembler. Essentially it does every trick in the book (and a few new ones even) to speed up PHP Input/Output through Apache. There are quite a few areas where speed is compromised just based on logic.

    Front end administrative functions have people using third party plugins or having it built into templates. I’ve already coded an entire frontend allowing for content to be edited, deleted, published etc that should just be there irregardless of theme. Anytime base functionality in these Open Source projects that just sorta “ought be there functions” ends up being done by third party developers it creates (or can) myriads of issues. For example, is this 3P’s admin front end secure? What happens if someone installs this or that impacting it. 3P’s writing similar code for a core need. It strays things off in lots of varied directions for end users instead of it being core function which means the 3P’s dont bother and the product becomes more stable for usage.

    I dont know if I can “melt” our workflow code into WP. Clearly there are not enough types of Roles to handle it. There are plugins that allow new roles to be added. Again, this is not something that should be handled by any 3P developer.


    Well, first, security. Second, can never tell if a person gets pissed, changes their code and gobs of websites who have happily used it now are “oh my”.

    Roles, assignment, expansion of what a user can and cannot do need be granular and in the core. Anything that “feels like” it should be a base functionality of the software should be in the core, not left to 3P’s as thats how problems can happen.


Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.