Automating syndication of reply contexts in Twitter Cards using OGP metacrap and plugins in WordPress

A Metacrap Problem

It’s metacrap–I know, I know–but I’ve been thinking about easy ways to use Open Graph Protocol meta data to add contextual Twitter cards to some of my content when syndicating posts to Twitter. My goal is to leverage the speed and ease-of-use of Micropub clients while doing as little as possible manually, but achieving as much parity between posts on multiple sites. 

I’m particularly keen to do this to syndicate/share more of the articles I read and post about on my site without adding additional manual work on my own part.

Outline of Some Resources

The Post Kinds plugin for WordPress parses URLs for me and pulls in data to create reply contexts for a variety of posts like bookmarks, reads, watches, listens, etc. Since Post Kinds doesn’t display featured images (yet), I’ve also been using the External Featured Image plugin to display the featured images from the original to add to the reply context of my posts as well. 

In addition to all these I’ve been using the All in One SEO plugin to easily add an SEO layer to posts without having to do much thinking about it. AIOSEO recently upgraded their UI and features in the last year, and yesterday I upgraded to the newest v4.0+. One of the new features it’s got is the ability to add default fields or pull in pre-existing custom fields to output OGP meta data. 

Start of a Solution

So I got the idea that since Post Kinds and External Featured Image plugins are pulling in and displaying the sort of data I’d like to show in Twitter cards, I figured why not use them? While metacrap is a DRY violation, the fact that it’s automated for me and is based on data I’m actually showing visually on my website makes it feel much less dirty. It also has the benefit that it helps make some of my syndicated content look and feel on Twitter, more like it does on my website. This is also a problem since Twitter hampers how much data I can syndicate in a single post.

I’ve still got some issues about how to deal with the Post Kinds data, but after a bit of digging around, I discovered the image URL for External Featured Image plugin is hiding in the _dcms_eufi_img field. So I can make the default Twitter settings in AIOSEO pull the external image by setting Default Post Image Source to Image from Custom Field and set the Post Custom Field Name to _dcms_eufi_img

Since a lot of my posts are reads, bookmarks, etc., this works well, but I can easily override the settings for articles or other custom posts which I make less frequently. 

Hopefully I can figure out the settings for Post Kinds to get the rest of the default fields to map across. I’m happy to hear ideas on what field names I’d need to use to get the Post Kinds Name and Summary/Quote fields to map over for the og:title and og:description respectively. Ideally I can manage to get it done without needing to get a subscription to the pro version of AIOSEO which also has support for custom taxonomies which is how Post Kinds works.

Since my theme has relatively solid microformats support, and I have plugin infrastructure to allow easy syndication from my website to Twitter through micropub clients, this last bit for creating Twitter reply contexts helps close some of the loop for me in my syndication workflow while keeping as much context across platforms.


Here’s a visual example of a native post on my site and the corresponding syndicated copy on Twitter. There are some differences, mostly because I don’t have as much control of the appearance on Twitter as I do on my own site, but they’re about as close as I can get them with minimal work.

screen capture of a tweet with my thought at the top and a Twitter card underneath it including the reply context of the article I'm responding to

screencapture of a read post on my website for a Slate article with a reply context at the top and my response to it just below

Published by

Chris Aldrich

I'm a biomedical and electrical engineer with interests in information theory, complexity, evolution, genetics, signal processing, IndieWeb, theoretical mathematics, and big history. I'm also a talent manager-producer-publisher in the entertainment industry with expertise in representation, distribution, finance, production, content delivery, and new media.

9 thoughts on “Automating syndication of reply contexts in Twitter Cards using OGP metacrap and plugins in WordPress”

    1. Ha! I’m already running so much of Matthias‘ code on my site I sometimes refer to it as PfefferlePress. 🙂 And I’ve followed Will’s work long enough to remember the DiSo project.

      I do like the DRY approach and the filters provided by that plugin, and maybe once I’ve got a proof of concept working, I’ll dovetail it with the Post Kinds plugin specifically. However, I’m hoping to cobble something together in a way that requires little or no code while still allowing per post customization when necessary.

      Syndicated copies:

  1. I think I understand what you’re working towards Chris and it’s very interesting. One of the problems I have with the current Post Kinds plugin is it only works with Microformats. When a site is not equipped with MF2 (and a lot of them aren’t) the plugin can’t parse any useful information from the site in question. When I want to reply, bookmark, favorite or anything, I need to be very aware I check the metadata of the site. Which is kind of weird, since there are lots of fallbacks when there is no MF2 available. It could trickle down as follows: MF2 > Open Graph > Meta tags of title and description. If this could be fixed within Post Kinds or the solution you’re working on, that would be great!

    1. Chris Aldrich says:

      Frank, it may seem that Post Kinds only works well with microformats, but this isn’t the case. It’s running some more sophisticated code based on Parse This which looks for microformats/HTML first and then it drops back to, JSON-LD, and then OGP metadata as a back up. When Post Kinds doesn’t find or return much data, it’s because the site is providing none of these.

      If you’re finding posts that do have some sort of mark up, but aren’t parsing properly, ping David Shanske and let him know.

Leave a Reply

Your email address will not be published. Required fields are marked *