In this episode, David Shanske and Chris Aldrich discuss how the Post Kinds plugin mapped IndieWeb types of posts to WordPress and why, the defined as opposed to implied types set up, and avatars.
While the conversation is WordPress-centric, there are a lot of discussions here relevant to a broader IndieWeb audience about adding new types of posts to your site, trying to design things flexibly (although a developer’s guide is probably needed), etc.
I’ve been meaning to write regular updates to highlight some of the useful changes in the functionality of the IndieWeb suite of WordPress plugins, but never gotten around to it. There’s been a few really interesting ones lately, so I thought I’d start. Observant watchers who read through either the code or even the scant change logs before they update their code may catch some of these features, but sometimes interesting tidbits can slip by the most vigilant. Here are some interesting recent ones:
Display of Reads, Listens, and Watches in comments sections
David Shanske’s excellent Post Kinds Plugin allows one to post what they’re reading, listening to, or watching in simple IndieWeb fashion. (Examples of these on my site: read posts, listen posts, watch posts.) These posts types automatically include the appropriate microformats classes so the user doesn’t need to bother doing them manually. For a long time when replying to another’s site, bookmarking it, or even mentioning it when also using the Webmentions plugin would send the site a Webmention that would generally cause it to show up as a native comment, bookmark or mention. With an update late last year, from within the Discussion settings in WordPress, one could set toggles so that many of these webmentions could be displayed as facepiles. Other broadly unsupported post types would typically default to a simple mention.
Recently David Shanske and I started a podcast, and he thought it would be useful if his site could accept listen posts and show them visually within his comments section just like these replies, bookmarks, and mentions. Thus over the past month he’s added code to the Semantic Linkbacks Plugin to add the functionality for these types of posts to properly render showing facepiles for listens, reads, and watches.
This is what webmentions of listen posts look like on his site in his comments section:
Listen (or scrobble) posts can send webmentions (or notifications) to the original content potentially with the experimental listen-ofmicroformat. In the case of scrobbles of podcasts, these webmentions could be displayed as “Listens” which would provide the canonical copy of the podcast some indicator of its popularity and actual audience. It is tremendously difficult to obtain data on the actual number of listens within most of the podcast community and typically a fraction of the number of downloads must be used as an indicator of the actual reach. Being able to display listens could potentially be a boon to the podcasting market, particularly with respect to advertising as this type of open social web functionality spreads.
I haven’t yet seen one for watches in the wild yet, but maybe you’ll be either the first to send or receive one?
The microformats on these posts is generally considered to be experimental, but with the ~500+ users of this suite of tools as well as others who are already using them on other sites, they’ve now taken a dramatic step into the open internet and more widespread use and potential official adoption.
Editable Webmention Types and Avatars
Just yesterday, I spent a few minutes in the IndieWeb chat helping someone to laboriously delve into their mySQL databaset and find a particular snippet of data so they could manually change a received webmention from being a simple mention to being a reply so that it would display as a native comment on their website. I’ve often done this to take what sometimes seem like simple mentions and change them to replies to reveal the richer content they often contain for the broader conversation. Sadly the process is boring, laborious, and fraught with potential ways to mess things up.
As of this weekend, this process is no longer necessary. One can now go to the admin interface for their comments and webmentions (found at the path /wp-admin/edit-comments.php), click on edit for the particular comment they’re changing and then scroll down to reveal a droplist interface to be able to manually change the webmention type.
As another example of a use for this functionality, perhaps you’ve received a listen mention on one of your podcast episodes that has a lot of useful notes or commentary germane to your episode? Instead of hiding it as a simple listen, why not change the type to reply to allow a richer conversation around your content? After all, with a reasonable reply it will be implicit that the commenter actually listened to the episode, right?
Because there is currently no functionality in WordPress for saving or caching the avatars of commenters via webmention, when users change their profile images on siloed services like Facebook, Twitter, et al. the link to their old avatars quits working and they were displaying blank spaces. This is an unfortunate form of linkrot, but one that can become more visually apparent over time.
As one can see in the image for the commenting edit box above, the field for the Avatar is now editable. This means one can update out-of-date or blank avatars. One now also has the ability to moderate/edit or easily remove/switch avatars if users are sending inappropriate photos for one’s site’s audience.
I have been following with interest your questions and queries in the IndieWeb chat, especially in regards to WordPress. I thought it might be useful to document my workflow associated with Read Write Collect for you:
Aaron Davis has created a solid outline for using WordPress to post and syndicate content out, particularly to Twitter.
I have taken to using HTML to add media or multiple paragraphs into the ‘quote’ box.
His comment here reminds me that I’ve seen him doing much the same thing I’m often doing. However I ought to better document the small code snippets I’ve used to change the default of the Post Kinds Plugin to allow me to input arbitrary html and code into the quote part of the meta box to custom define my reply contexts. (The plugin generally strips out most html and scripts for security, but since I check these or make them manually myself (often when making posts via PESOS), I’m not worried about injected code.)
In great part it comes down to changing ‘false’ to ‘true’ in the indieweb-post-kinds.php file: define( 'POST_KINDS_KSES', false );
Though there are one or two other bits so that I don’t need to redefine it each time the plugin changes.
Adds support for responding to and interacting with other sites using the standards developed by the Indieweb Community
It would be nice if there were a way to distinguish between various watch types to differentiate between films, television, and internet based streaming media — perhaps with a data field and a toggle along with three appropriate icons for each of these rather than the single watch icon now (a generic “play” button).
Further, most of the current meta data fields are fairly solid for the most often used fields, but I often find that it would be nice to have fields for Season # and Episode # for television shows.
The last “big” piece that would be nice to have is a quickly usable ratings field of sorts so one could provide a rating 1-5, 1-10, or 1-100 rating field? Maybe it could be a simple numerical data field that calculates/displays a rough 5 star-based scale? h-review markup could also come into play here as well, though it would be nice to capture the raw data even if there is no UI display built for it.
Sorry, David, I seem to be breaking your stuff left right and centre.
I've been using Post Kinds plug to post replies to other websites, but then last night when I clicked on "reply" in Kinds, the usual URL bar (for pasting in the article URL I'm replying to) doesn't show up.
I thought it was because of one of the plugins I've installed, so I restored my WP back to an instance when the URL bar was showing. After the restore, Post Kinds starts working again, but after posting a couple of posts (without adding any new plugins) the URL bar stops showing again.
I'm not sure what I'm doing wrong.
I’ve seen some issues similar to this, but haven’t been able to figure out what the root cause may be. It began in the version of Post Kinds just after you updated the Response Properties Meta box moving based on the post kind being chosen.
In general, the problem seems to be that the Response Properties checkbox in the Screen Options (in the top right hand corner of the admin UI) doesn’t seem to remember its prior state. Thus I’ve needed to occasionally open the screen options and recheck the Response Properties box to see its meta box.
I’ve played around with it a bit, but can’t always reliably recreate the issue. It does seem to be happening less frequently now compared to when I originally upgraded. Is it possible that the checkbox state is only saved per kind?
Adds support for responding to and interacting with other sites using the standards developed by the Indieweb Community
For ease-of-use as well as to help designers, theme builders, and maybe even Gen2 it might be useful to have a “master template” for views which includes all of the output of the data fields within Post Kinds in a single view.
If done in a relatively modular fashion with good commenting, perhaps even Gen2 folks could more easily delete or move pieces within such a master template to mash up various pieces to get what they’d like to display. Including alternate versions for displaying things could be useful as well (eg: raw display of things like start time and end time as well as a separate calculated duration time based on these two.)
@mrkrndvs I've really been interested in the collection/curation I see from you &
@chrisaldrich - I'm in the process of figuring out how to build up a WordPress site to serve as the "commonplace book" on the WordPress site, keep it simple, and have it pump into my weekly newsletter. Any links/guidance/plugins on how to make this happen is definitely appreciated.
I want to keep this as simple/lightweight as possible. :)
My favorite piece of the puzzle is using the Post Kinds Plugin for WordPress which has some useful browser bookmarklets for quickly saving what I read, bookmark, and interact with online. Having the ability to add categories, tags, and other behind-the-scenes metadata also helps a lot.
You can then turn around and add all this to a newsletter at your leisure.
Happy to share more, but this should be a good start.
The adding of kindurl= no longer works. Fix needed.
@mrkrndvs I’ve found that if there’s an emoji within any of the metadata sucked into the meta box fields, the filter that sits on these fields to prevent malicious code, can then remove ALL of the data from them when you either save as a draft or try to publish the post.
If you’re finding that it doesn’t seem to work or does so sporadically, you might take a look for things like emoji or other potential unrecognized characters for the URLs you’re trying to use to see if that’s what is causing the bug.
Adds support for responding to and interacting with other sites using the standards developed by the IndieWeb Community
Based on prior art and details in the IndieWeb Wiki for acquisitions.
I’m including some potential code below, though it will also require adding the appropriate icon and some meta data in a few places for the “Kinds” meta box as well as to the admin UI locations which are currently missing.
I’ve “cheated” a bit and defaulted to display the “wish” icon and thus some of its metadata, so the acquisition kind would need its own icon (the same shopping cart icon may be best) and some small meta data would need to be changed as well in the final.
For those who need to have this right away, the code below will “work” from a display standpoint.
Taxonomy Code template
Code snippet I’ve added to indieweb-post-kinds/includes/class-kind-taxonomy.php just under the section for the wish kind:
'acquisition' => array(
'singular_name' => __( 'Acquisition', 'indieweb-post-kinds' ), // Name for one instance of the kind
'name' => __( 'Acquisitions', 'indieweb-post-kinds' ), // General name for the kind plural
'verb' => __( 'Acquired', 'indieweb-post-kinds' ), // The string for the verb or action (liked this)
'property' => 'acquired-of', // microformats 2 property
'format' => 'status', // Post Format that maps to this
'description' => __( 'Purchases, gifts, found things, or objects donated to me', 'indieweb-post-kinds' ),
'description-url' => 'http://indieweb.org/acquisition',
'show' => true, // Show in Settings
Naturally the “true” flag for ‘show’ should be set to “false” until the code is feature complete.
A simple view for the acquisition post kind
Add the following code to the folder indieweb-post-kinds/views/ in a file named kind-acquisition.php
Future additions/improvements to this kind could include potentially adding new data fields to indicate the “location purchased” as well as the “purchase price”, the “manufacturer” and maybe the “condition” with a dropdown for selecting options like brand new, like new, very good, good, acceptable, poor, and unspecified. These could be marked up with the h-product related microformats of p-price and p-brand. These would then need to be tucked into the view as appropriate as well.
A WordPress plugin that allows you to easily create a huge variety of social media post types to own your social media life online.
Within the broader social media world there are a huge variety of types of posts. These range from common articles to status updates to likes or favorites to more varied post types like photos, bookmarks, RSVPs, checkins, videos, reviews, jams, reads, audio, exercise, food, recipes, and even an exotic and rare chicken post type. While this list barely scratches the surface, the IndieWeb wiki has an almost exhaustive list along with examples.
Many social platforms sub-specialize in only one specific post type while others provide support for multiple types. Here are some common examples:
Twitter: status updates
Instagram: photos, videos
Facebook: status updates, articles, photos, videos, links, events, life events, checkins, emotions
LinkedIn: status updates, articles, résumés
Tumblr: text, photo, quote, link, chat, audio and video
Last.fm: listens (aka scrobbles)
Wouldn’t it be better to have a single personal website where you could post all these types of content easily and quickly?!
For a few years now, I’ve been posting these and many other types of posts on my personal website. When it’s appropriate I crosspost many of them to the social media silos that support these types so that friends, family, and colleagues can subscribe to them in the way that’s easiest for them.
Post Kinds Plugin
The Post Kinds Plugin for WordPress attempts to make it much easier to create customized displays for and format each of these types of posts (and many more). It leverages the flexibility and power of WordPress to be your single social media hub while, along with other IndieWeb friendly plugins, still allowing you to interact with other social networks.
Post Kinds Plugin not only indicates in the metadata what each post type is, but provides each post with some contextualization as well as the appropriate microformats classes to make it easier for other sites or parsers to interpret these posts. In short it helps to make status updates look like status updates; favorites appear like favorites; (schnozzberrys look like schnozzberrys); and RSVPs look like RSVPs in keeping with common user interfaces on many social platforms. (And in case you didn’t know, you can now post an RSVP on your own website and send a notification to posts elsewhere on the web of your intention!)
Post Kinds Plugin is different from WordPress’s Post Formats functionality
This sounds a little bit like the WordPress theme specific functionality of Post Formats, doesn’t it? Yes and resoundingly no!
Post Formats was a WordPress feature introduced in version 3.1, ostensibly to compete with other social platforms like Tumblr which offers the explicit post types of text, photo, quote, link, chat, audio and video.
Within WordPress, post formats are available for users to choose from if the theme enables support for them. And typically if they do support them they often provide specific display outputs and CSS styling that are controlled by the theme, often to make them look like what users have come to expect these post types to look like on other social media platforms. As an example, a “Status” post would typically display a short update which doesn’t include a title. Each theme that supports post formats chooses which ones they support, how to display them, and they can vary quite a bit from one theme to the next.
Below is the list of the nine supported formats with brief descriptions of their purpose taken from the WordPress codex:
aside – Typically styled without a title. Similar to a Facebook note update.
gallery – A gallery of images. Post will likely contain a gallery shortcode and will have image attachments.
link – A link to another site. Themes may wish to use the first <a href=” “> tag in the post content as the external link for that post. An alternative approach could be if the post consists only of a URL, then that will be the URL and the title (post_title) will be the name attached to the anchor for it.
image – A single image. The first <img /> tag in the post could be considered the image. Alternatively, if the post consists only of a URL, that will be the image URL and the title of the post (post_title) will be the title attribute for the image.
quote – A quotation. Probably will contain a blockquote holding the quote content. Alternatively, the quote may be just the content, with the source/author being the title.
status – A short status update, similar to a Twitter status update.
video – A single video or video playlist. The first <video width=”300″ height=”150″> tag or object/embed in the post content could be considered the video. Alternatively, if the post consists only of a URL, that will be the video URL. May also contain the video as an attachment to the post, if video support is enabled on the blog (like via a plugin).
audio – An audio file or playlist. Could be used for Podcasting.
chat – A chat transcript
There is anecdotal evidence that the WordPress Post Format functionality is slowly falling out of favor and there hasn’t been much, if any, change in how the feature works in the past several years.
The Post Kinds Plugin in many respects picks up where Post Formats left off, extends them significantly, and also builds a stronger platform for more modern website to website interactions.
The Post Kinds Plugin out of the box generally does an excellent job of styling with some generic CSS to make these various post types look and behave as one expects without any changes or modifications to one’s theme. However, designers are more than welcome to either customize their CSS to their hearts’ content, or, if they prefer, they can manually code specific template views to override the plugin’s original views within their theme or child theme. To do this the plugin looks for a subfolder (or directory) within the theme entitled kind_views and uses those templates instead.
Because, in part, the Post Kinds Plugin is designed for use with IndieWeb philosophies in mind, it has built in microformats support. What are microformats? They’re simple semantic classes added to the HTML of one’s site that allow parsers or other programs to read the data on your posts and pages to provide extended or increased functionality. WordPress’s core functionality already includes some microformats version 1 support; Post Kinds Plugin extends this quite a bit and uses the more modern version 2 specifications. Because Post Kinds takes care of these additional microformats, some older themes will have a leg up in the IndieWeb space despite having either limited or no theme support.
As an example using the reply post kind, the context from the site for which the particular post is actually a reply to is wrapped with the semantic class “p-in-reply-to”. As an example of the extended functionality provided by microformats, if one is using the Webmentions Plugin to send a webmention to the post that is being replied to, that remote site can parse the reply and display it properly as a reply in their comments section. (For WordPress sites receiving these webmentions, they can utilize the parser built into the Semantic Linkbacks Plugin.)
Similarly, bookmarklets, feed readers, or other programs could utilize these microformats and the data on your page to create customized views and displays.
Plugin Installation and Configuration
Installation of the plugin is relatively straightforward. From the Plugin tab in the WordPress admin interface, one can click the Add New button at the top of the page and either search for the plugin within the repository and install and activate it, or they can use the Upload Plugin button and install it from a prior download from either the WordPress repository or from the GitHub repository.
Configuration can be done from the Settings tab within the WordPress admin interface or, if the IndieWeb Plugin is installed, the settings can be found under IndieWeb » Post Kinds tabs in the admin interface.
Within the settings you can choose the post kinds you wish to enable on a particular site–not all sites will necessarily need or even want all types. I recommend only enabling the specific kinds you will actively be using; you can always come back and add additional types in the future. Some types may be enabled by other specific plugins that work in conjunction with Post Kinds Plugin.
Not having a post kind enabled will not disable the functionality on existing posts, it only hides the selection in adding new posts. This way if you enable favorites as a type and only use it a few times before deciding to disable it, the old posts will still exist and display properly.
You can also enable a Default Kind for New Posts. Most people will likely choose Article which is the default, but if your site is primarily used like a microblog for short status updates, then obviously Note may be your best default. Are you building a linkblog? Then you could enable the Bookmark kind.
How to use Post Kinds in practice
So how does this all actually work for creating posts?
Let’s start with a simple example. Let’s say I read a lot online and I’d like to have a linkblog of all of the articles I read. Let’s say I’m reading the article Lyme Disease’s Worst Enemy? It Might Be Foxesin the New York Times. I’d like to start out by creating a read post to indicate to those following me that I’ve read this particular article.
While I could do it manually, typically I’ll use a custom bookmarklet (more on how to do this shortly), which I click on in my browser bar as I read the article. The bookmarklet will create a new WordPress post and automatically fill in the URL of the article into the “Post Properties” metabox created by the Post Kinds Plugin in the admin UI of my WordPress site.
Then, I will click on the blue Retrieve button (pictured above) just under the post’s URL. The Post Kinds Plugin will parse the New York Times article page for either explicit metadata or Open Graph data to fill in some context about the article I’m reading in the Post Properties meta box. The main tab will autofill with the Name/Title of the article, a Summary/Quote of the article, and Tags if available. Similarly the other tabs in the Post Properties meta box including Details, Author, and Other will fill in with any available metadata about the Lyme disease post I’m reading.
In this particular example, the Times didn’t do a good job on the author data, so I’ll go to that tab and manually cut/paste the author’s name into the Author/Artist Name field, their URL into the Author/Artist URL field, and (optionally) the URL for their photo image as well. If other fields are improperly filled out or you would like to change them, one can manually adjust them if necessary. Not all kinds need (or show) all theses metadata fields when they’re ultimately published.
The retrieve button will also attempt to fill in an appropriate post Title into the posts’ field for that, but it can be modified manually if necessary. On many post kinds, though one may fill in an explicit (traditional WordPress post) title, it may not display on the final post because an explicit title isn’t really needed and the Post Kinds Plugin won’t display it. The note kind is a particular example of this behaviour.
Now that the contextual part of the post I’m reading is handled, I can, if I choose, add any notes, quotes, thoughts, or other personal data about what I’ve read into the main text box for the particular post.
The bookmarklet should have automatically set the post kind selector in the Kind metabox to Read and, if available, the older WordPress post format to link. (These can be changed or overridden manually if necessary.) Post Kinds does its best to properly and appropriately map Post Kinds to Post Formats, but the relationship isn’t always necessarily one-to-one and there are obviously many more kinds available than there are post formats.
Finally, the article can be published (unless you want to add any additional metadata to your post for other plugins or needs.)
Now I can also go to the URL of my personal site at http://example.com/kind/read/ where I can find an archive of this and all the posts I’ve read in the past.
Other post kinds work relatively similarly, though some may take advantage of other appropriate metadata fields in the Post Property meta box. (For example RSVPs use the RSVP dropdown field within the Other tab in the Post Property box.)
Custom feeds for Post Kinds
For sites adding lots of different post kinds all at once, the extra possible “noise” in one’s RSS feeds may have the potential to turn a site’s subscriber’s off. Fortunately the plugin also has custom RSS feeds for each of the particular post kinds which follows a particular format. As an example, the RSS feed for all the posts marked as “Note”, could be found at either the URL http://www.example.com/kind/note/feed
or http://www.example.com/feed/?kind=note (if one doesn’t have pretty permalinks enabled). Other feeds can be obtained by replacing “note” with the base names of the other kinds (reply, article, etc.).
Post Kinds Plugin also handles the display of archives for individual post kinds. To view all the posts marked as notes, for example, one could visit the URL http://www.YOURSITE.COM/kind/note/. Simply replace YOURSITE.COM with your particular site name and the particular post kind name to access the others. In some areas of the social media world, this particular archive display of notes might be considered a personal Twitter-like microblog.
For Post Kinds Plugin users who like the simplicity and ease of use of bookmarklets, one can add ?kindurl=URL to their post editor URL and it will automatically fill this into the URL box in post properties. Adding ?&kind=like to the post editor URL will automatically set the kind.
As a full example, the URL pattern https://www.example.com/wp-admin/post-new.php?kindurl=URL&kind=like will automatically create a new post, set the post kind as like and auto-import the permalink URL for the page into the URL field of the Post Properties meta box.
The following code could also be used as a template to create a full set of browser bookmarklets. (Keep in mind the base URL example.com will need to be changed to the base URL of your personal site for it to work properly. One would also change the word bookmark in the code to any of the other types.)
Now that we’ve seen a few examples and gotten things set up, let’s take a brief look at all of the Post Kinds that are available. To make things a bit easier, we’ll break them up into four groups based on some shared qualities.
The Non-Response Kinds
These kinds have an analog in WordPress’s original post formats. Adding context to one of these may make it a passive kind.
Article – traditional long form content – a post with an explicit post title
Note – short content or status update – a post with just plain content and usually without an explicit post title
Photo – a post with an embedded image as its primary focus. This uses either the featured image or attached images depending on the theme.
Video – a post with an embedded video as its primary focus
Audio – a post with an embedded sound file as its primary focus
The Response Kinds
Response kinds differ from the non-response in that they are usually intended to be interactions with other external sites. For the best experience and improved functionality with these post kinds, it is recommended, but not required, that one have the Webmentions and the Semantic Linkbacks Plugins installed and activated. Doing so will send notifications of the replies and other interactions to those external sites which often display them. (These help your site work just like replies and mentions do on many other social media platforms, they just do so in distributed ways, so that neither you nor your friends necessarily need to be on the same platform or content management system to communicate.)
Reply – used for replying to someone else’s post
Repost – a complete repost of someone else’s content
Like – compliments to the original post/poster
Favorite – content which is special to the favoriter
Bookmark – this is basically sharing/storing a link/bookmark.
Quote – quoted content
RSVP – a specific type of reply regarding attendance of an event
The Passive Kinds
To “Scrobble” a song is to make a related post on your website when listening to it. This is the most well-known example of a passive kind of post. These kinds are formed by having content in the context box on one of these types of posts.
Listen – scrobble – listening to an audio post
Jam – Indicates a specific personally meaningful song
Watch – watching a video
Play – playing a game
Read – reading a book, magazine, or other online material
The following kinds are reserved for future use within the plugin but will not currently show up in the interface unless enabled directly within the code. In some cases, these kinds don’t have the appropriate metadata fields within the plugin to make them user friendly without significant work.
Wish – a post indicating a desire/wish. The archive of all of these posts would be a wishlist, such as a wedding, birthday, or gift registry.
Weather – a weather post would be about current weather conditions
Exercise – represents some form of physical activity
Trip – represents a trip or journey and would require location awareness
Itinerary – refers to scheduled transit, plane, train, etc. and does not generally require location awareness
Check-In – identifying you are at a place. This would use the extended WordPress Geodata. It will require the Simple Location Plugin or something equivalent to add location awareness to posts. Some people are beginning to use this with the OwnYourSwarm application, which may require further configuration of your site to work properly.
Tag – allows you to tag a post as being of a specific tag, or person tagging.
Eat – for recording what you eat, perhaps for a food diary
Drink – similar to Eat, but for beverages
Follow – a post indicating you are now following someone’s activities (online)
Mood – feelings or emotions you’re having at the time of posting
Recipe – ingredients and directions for preparing food or other items
Issue – an article post that is typically a reply to some source code, though potentially anything at a source control repository
Event – a post kind that in addition to a post name (event title) has a start datetime, (likely an end datetime), and a location.
If you’re reading this on my personal website, you can click on and view a variety of these post kinds described above to give you an idea of what they look like (and how they function with respect to Webmentions and other IndieWeb functionalities).
I’ve tried to cover as much of the basics of the plugin and provide some examples and screenshots to make things easier, but as always, there are ways to do additional custom configuration under the hood. I’m sure there are also off-label uses of the plugin to get it to do things the creator didn’t intend.
For additional details, one is certainly encouraged to skim through the code. If you have specific questions or problems, you can usually find the developer of the plugin and many of its users in the IndieWeb chat (web chat, IRC, Slack, etc.) for possible real-time help or support, or you can post questions or issues at the GitHub repo for the project.
Special thanks to David Shanske for creating and doing a stellar job of maintaining the Post Kinds Plugin. Additional thanks to those in the IndieWeb community who continue to refine and revise the principles and methods which make it constantly easier for people to better own and control their social lives online by owning their own websites and data.
Much like WordPress’s native post formats (standard, aside, image, quote, link, status, audio, etc.) which were introduced in v3.1, Post Kinds instead provides a better mapping of post types across a larger variety of social media types (article, bookmark, favorite, itinerary, jam, like, listen, note, photo, play, read, reply, repost, watch, and more). In addition to changing the visual layout and formatting of most posts, the plugin also importantly includes the correct microformat classes for each of these post types and this enables a lot of other fantastically important functionality for the open web.
Custom URLs for Post Kinds
One of the problems I had with using it initially was taking the extra time to cut and paste in the several pieces of additional data or fill in meta data to make a post. It was particularly painful in a mobile setting. I was thrilled when David mentioned that he’d built in some customized query parameters which could take URLs to import in much of the data as well as to set the correct post kind automatically. They came with the general format of
where one could replace @url with the target URL of the site to be bookmarked, for example. Replacing bookmark with the appropriate post kind name would allow one to set the flag for each post to the proper post kind automatically, and naturally one should replace example.com with the base URL for their site.
Putting this customized URL into a browser will create a new post in one’s website admin UI and Post Kinds will automatically set the URL and scrape its meta data. One can then modify any additional data or add a comment and then publish quickly and easily.
As a concrete example, I would put the following URL in my browser of choice to “like” the Post Kinds Plugin page: http://www.boffosocko.com/wp-admin/post-new.php?kind=like&kindurl=https://wordpress.org/plugins/indieweb-post-kinds/
Below is the modified code that can be put into a bookmarklet to allow for easily bookmarking a particular post:
Other versions of the bookmarks can easily be made for all the other other Post Kinds by replacing the two red highlighted portions of the code sample appropriately for each one. Specifically one should exchange bookmark with the name of the kind desired (all of them should be in lowercase) and replace example.com with one’s own domain name.
Perhaps I (or someone else enterprising) would contribute all this back into the plugin repository for Post Kinds so that these bookmarklets would be self-generated for plug and play usage within the admin interface for the plugin the way the bookmarklets are for the IndieWeb plugin’s PressThis bookmarklets, perhaps at /wp-admin/admin.php?page=kind_options.
A Post Kinds “Bookmarklet” for Mobile
For those who would like something similar to the above for use on mobile platforms (and particularly Android) I’ve written up some instructions below which allow one to use the Android app URL Forwarder to use the ubiquitous mobile “share” functionality from most pages and/or apps in a way similar to this bookmarklet functionality. (This is based in part on some work by Ryan Barrett and some work I’d written up for the Known CMS a while back.)
I’d suspect that there’s also a similar app for iOS, but I haven’t checked. If not available, URL Forwarder is open source on Github and could potentially be ported. There’s also a similar Android app called Bookmarklet Free which could be used instead of URL Forwarder.
Configuring URL Forwarder for Post Kinds
Open URL Forwarder on your phone
Click the “+” button to create a filter.
Give the filter a name, “Bookmark” for the bookmark version. (See photo below.)
Use the following entry for the “Filter URL” replacing example.com with your site’s domain name: http://EXAMPLE.com/wp-admin/post-new.php?kind=bookmark&kindurl=@url
Leave the “Replaceable text” as “@url”
Finish by clicking on the checkmark in the top right corner.
Repeat the above for the other desired post types but replacing “bookmark” with the lower case names of those other types.
Configuring URL Forwarder
To bookmark a page, use the share icon and choose the URL Forwarder app
Select the appropriate option from the menu based on the site and post type you want to create. (You can set things up for multiple sites!)
Creating a post via mobile
With the configuration above set up, do the following:
On the mobile page one wants to bookmark, like, favorite, etc., click the ubiquitous “share this” mobile icon (or share via a pull down menu, depending on your mobile browser or other app.)
Choose to share through URL Forwarder
Click on the “bookmark” option just created above (or other option as necessary for the desired post type).
Change/modify any meta data within your website administrative interface or add any additional thoughts and publish. (This part is the same as one would experience using the desktop bookmarklet.)