Comments in WordPress were originally thought of as a way for visitors to a site to have discussions on the site. I’m going to refer to the traditional comment idea as ‘local comments‘. This is where someone fills out a comment form on a post, which adds a comment to the page, either with or without moderation.
Also built-in to WordPress are pingbacks and trackbacks. These are where another site notifies of a link to the page and this is displayed as a comment on the page. Pingbacks and trackbacks have their issues, and admittedly, WordPress, except for some minor tweaks, has left the presentation and features of these mostly unchanged, save for some security efforts. Therefore, it has become common to disable them. Webmentions are a replacement for the older pingback and trackback protocols.
There are also custom comment types used for things like logs, receipts(See mention in Trac Ticket which notes that popular plugin Easy Digital Downloads does this), etc. which are not part of the general vision of what a comment is. Of course, custom post types aren’t all traditional posts either.
Meanwhile, other areas of WordPress are getting functions to register functionality. 1n December of 2015, a ticket was opened for Custom Comment Types. This would, in theory, mirror the functionality of Custom Post Types, where a registration function would declare the functionality and behavior of a comment type.
But there are issues here beyond what is identified in the ticket. How will a theme know how to display the new comment type? There needs to be a way for this to be specified by the registration and overridden by themes that know what that comment type is. There is a possibility there may be some breaking changes in that design.
Meanwhile, comments cannot be referenced uniquely and distinctly. There is another ticket equally old, proposing comment permalinks. Whether this is just to find the comment on whatever page it is on, or allowing a comment template that emphasizes the comment by itself, it is an aspect of the comment system that needs replacing.
That addresses the structure, but not what could be done with it. Not only would this allow for webmentions as a medium to create comments(webmentions being the successor to pingbacks), but support for responses that are popularly used today such as like, emoji, annotation, etc. The Semantic Linkbacks plugin tries to create these relationships in comment meta, but it is not as robust as a supported implementation would be.
Annotations and marginalia recently have been of interest in allowing people not to just comment on a post as a whole, but on specific areas of it. This could also be a promising piece of a comment overhaul…supporting this. In my contributions to the Webmentions plugin, I started this by supporting URL fragments(see fragmentions), which would allow for a specific part of the post to be highlighted.
This is the one of a series of brainstorming posts I am putting out about how major functional Core changes to WordPress could result in an improved experience for those interested in pursuing Indieweb philosophies in WordPress. This builds on a previous article about improving comments.
In the previous article, I discussed my thoughts on the subject of comments as a structure and what comments could be capable of if that structure was improved. But, when I showed that to several people, the comment was, quite legitimately, that I didn’t explain what could be built on top of that. I had another topic in mind before covering this, but that made me want to document this as well.
Let’s start with webmentions. Webmentions builds on the idea of the two protocols that are built into WordPress: Pingbacks and Trackbacks. Trackbacks have to be discarded from WordPress. There is no verification of them…it is basically letting anyone post something on your site…moderated or not. The other site tells you they’ve linked to you(even if they haven’t) and what to make it look like on your site. And because of this…while I’ve tried to think of ways to save it, I think it needs to, over time, go on the chopping block.
Pingbacks, despite actually verifying that a URL links to where it says it does, currently don’t do anything else interesting in WordPress. The appearance and usage has stagnated. It could be improved on the display side, and I’ve tried to get interest in that…but I’m wondering as we move forward…considering the legacy design issues, the bad feelings, what I would like to see happen with comments, etc…if we should just let Pingbacks stay where they are with only some performance and other minor refinements, and develop Webmentions.
Webmentions have advantages. They support update and delete functionality if the source changes in the future. They have a standard recommended by the W3C(which the previously implemented protocols do not), as well as a dedicated community who has implemented them on their sites.
What was never realized in potential by previous protocols, but Indieweb community members are implementing is the magic. Someone links to your site with a post on their site. They use webmention to tell you that they linked to you. But what your site does at that point is controlled by you. You can parse their post and display it as a comment, or based on how their page is marked up, derive other meaning and relationships from it. You can just use it in a simple counter or stat display to note how many people linked to you. There have been some fun discussions of using it to share bibliographic data.
If you had to pick one thing, webmention is the key building block on which the Indieweb is built. By itself, it requires no trust on the part of the receiver. There is a developing extension called Vouch which allows the sender to provide proof that someone the receiver knows trusts them. And, moderation aside, presentation of this is wholly left to the receiving site. Back to the comment point in the previous article on this, one of the functional WordPress problems is that there is no way for a plugin to declare a custom comment type and tell the theme how to display it or whether to display it at all. You effectively have to hijack the comment template to do this, instead of working with it.
To the point of something like annotations, the idea of fragmentions which allow a specific part of a post to be referenced more effectively…WordPress doesn’t support inline comments of any type or marginalia. There is a trac ticket to implement the W3C’s work on annotations, but WordPress has nothing to allow for displaying this sort of work.
There is a current Webmentions plugin for WordPress that is under continual development. It was created by Matthias Pfefferle, and I have been a regular contributor to it. It handles the functional plumbing of webmentions, but not the improved display aspect. That has been delegated by its creator to a second plugin, Semantic Linkbacks, which attempts to offer the parsing of external sites and deriving information like author(name and photo), etc.
It is worth trying the combination of these. But there is more that can be done here as well. Cover more types, improve the ability to store commenter’s data, etc.
IndiewebPress: Connecting Your Site and Mine – David Shanske
David Shanske is writing a blog series on WordPress and the IndieWeb. The first article in the series addressed comments, and this one talks about Webmention and Vouch. Its a great series worth following, especially if you’re a WordPress person who is interested in learning more about the IndieWeb and how you can take part.
This post was originally intended to explain how I’m using the tools already built for WordPress to separate out likes, reposts and replies/comments. A follow-up post is forthcoming
When most people think of comments, they think of spam and trolls. I know I did. But then I discovered the IndieWeb, a movement to create interoperable components that would allow a more robust way of interacting with your site and the rest of the web. Most of the content published here is now syndicated out to “silos”, in my case primarily Twitter 1. And with that, if someone replies, retweets or likes that note or article, that interaction is stored in the WordPress database and displayed with comments.
Which leads to a broader discussion among WordPress users participating in the IndieWeb – How to better manage the different types of interactions? David Shanske, who has being doing yeoman’s work in building and contributing to the plugins that make IndieWeb possible with WordPress, outlined some of the hurdles and how to improve WordPress comments for the IndieWeb.
While I admit I do not see the utility in having a permalink for a comment, I also admittedly haven’t looked closely at the underlying code to know where the benefit is. I definitely see the need to fully flesh out custom comment types and would like to work with him as an evangelist to see who/where in the WordPress community we can lobby to put that in motion. I’d definitely like to contribute any code I can, as well as help with documentation.
When I discovered WordPress twelve years ago and started this personal blog on it, WordPress was a tight nit community of users dedicated to the democratization of the web. I still believe there are participants in the project where that is a guiding principal. I have no doubt Matt Mullenweg believes in that principal still. Which is why I have confidence that if framed in the right way, the IndieWeb desires to expand on the code managing and storing comments can be a priority for the greater WordPress community.
There is definitely a laundry list of wants and needs to better allow for a WordPress site be IndeWeb out of the box. A big one would be support for microformats 2. Custom comment types as outlined by David would be another. And I’m still only scratching the surface.
If you are interested in more about the IndieWeb or how we can move the needle in WordPress, I’d love to hear your response.
I’m weaning myself off posting natively to Twitter, but that’s an evergreen statement. ↩