Articles 1, 5, and 6 in this highlighted series for Twitter will get you most of the functionality (and then some). However once you’ve enabled some of these related plugins, you can also do so much more than just use your site to interact with Twitter.
WordPress and IndieWeb developer, genius, good friend
I’ve actually been following David for ages, but since he’s slipped some following code into Syndication Links, I thought I’d send him the first follow post to attempt to take advantage of the functionality. Can’t wait to see what it looks like on his site.
To keep everyone aware of big projects and efforts across WordPress contributor teams, I’ve reached out to each team’s listed representatives. I asked each of them to share their Top Priority (and when they hope for it to be completed), as well as their biggest Wins and Worries. Have questions? I’ve included a link to each team’s site in the headings.
Always interesting to read high level quarterly updates of organizations like this to see where they’re at and what they’re having trouble with.
Yesterday after discovering it on Xavier Roy’s site I was reminded that the Post Kinds Plugin is built on a custom taxonomy and, as a result, has the ability to output its taxonomy in typical WordPress Tag Cloud widget. I had previously been maintaining/displaying a separate category structure for Kinds, which I always thought was a bit much in my category area. While it’s personally nice to have the metadata, I didn’t like how it made the categories so overwhelming and somehow disjointed.
For others who haven’t realized the functionality is hiding in the Post Kinds Plugin, here are some quick instructions for enabling the tag cloud widget:
- In the administrative UI, go to
Appearance » Widgetsin the menu structure.
- Drag the “Tag Cloud” widget to one of your available sidebars, footers, headers or available widget areas.
- Give the widget a title. I chose “Post Kinds”.
- Under the “Taxonomy” heading choose
- If you want to show tag counts for your kinds, then select the checkbox.
- If necessary, select visibility if you want to create conditions for which pages, posts, etc. where the widget will appear.
- Finally click save.
You’ll end up with something in your widget area that looks something like this (depending on which Kinds you have enabled and which options you chose):
If you’re interested in changing or modifying the output or display of your tag cloud, you can do so with the documentation for the Function Reference wp tag cloud in the WordPress Codex.
RSS is incredibly valuable as is OPML.
I had used Feedly for several years, but made the switch to Inoreader last year, in part because it has one additional useful feature that Feedly doesn’t: OPML subscription. While it’s nice to be able to import and export OPML files, needing to remember to update them can be an unnecessary step, particularly if 20+ people need to do the update to capture all the new RSS feeds added. (As an example, say one or two students join a class late and everyone has already got the original OPML export and now needs to update to add a few more feeds to keep track of classroom activity.) OPML subscription improves this by allowing the subscription to an OPML link with multiple feeds in it. If the original OPML file updates with new feeds, then the reader automatically updates them and pushes them out to everyone subscribed to that OPML file!
Think of an OPML subscription as an updating subscription to a bundle of RSS feeds which all also provide their own individual updates. Instead of subscribing to a bunch of individual feeds, you can subscribe to whole bundles of feeds.
For those looking for some sample OPML links to subscribe to, try some of mine which are listed at the bottom of the linked page. For some ideas about building your own data stores with OPML links for WordPress, try my Following Page solution. WordPress’s old Link Manager described on that page will provide the ability to store the data and provide the OPML links, the rest of the page discusses publishing it on one’s site so that it’s publicly available if you wish. URL schemes for sub-categories are discussed separately.
This is because the photo template doesn’t call these particular details even though they may be provided. I could see an occasional use for including them, particularly to give credit to a photo that was taken by someone else, while in practice most may not use this because they’re posting their own photos.
In the meanwhile, it may not be too tough to cut/paste bits of appropriate code from other templates to get these to display the way you want them when they exist. You can create a custom photo template named
kind-photo.php and put it in a folder entitled
kind_views in either your theme or (preferably) in your child theme so it isn’t overwritten on plugin update.
I do still wish there were a master template in the set (heavily commented and unused) that used every variation of data that could be displayed (or perhaps even calculated for display) so that non-programmers could attempt to more easily cut/paste templates to get them to do what they wanted.
Post Kinds consists of a few elements
- A URL parser that takes an input URL and tries to extract it into structured data
- Enhancements to the Post Editor to add additional structured data to the post object
- A Taxonomy that takes that structured data and classifies it and dictates behavior
- A rendering piece that takes the structured data stored in post meta and displays it using templates that can be overridden in the theme by including them in a subdirectory called kind_views
This is a great short description from a WordPress developer perspective of what the Post Kinds Plugin does
/wp-admin/comment.php admin page when manually editing a comment to change any of the common fields (author, email, the comment itself) and saving, everything saves as expected except for the avatar within the Semantic Linkbacks portion. If the avatar was changed (or one was added) things are saved properly, but when updating other fields and not changing the avatar itself, the avatar field data seems to be deleted on saving, thus making the author images disappear.
Did you know that the Incoming Links and the two WordPress news Dashboard widgets are just RSS readers? Click “configure” in the upper right corner of each widget, and you’ll be able to change the feed to one that you choose.
Apparently this functionality got ripped out long ago because of it’s primary use. It would have been better to keep it for the feed reader portion of things though…
It’s the missing reader that’s always made WordPress a 4th class citizen in the social world.
With the launch of WordPress 5.0 drawing near, it’s more important than ever to get ready for Gutenberg’s arrival. One plugin that aims to help you do this is Gutenberg Ramp. This enables you to selectively use the new editor on specific sections of your site, to help you get acquainted with the...
Apologies Brad. I just saw your follow up post and had meant to reply towhen I saw it last week, I just didn’t have the time to write a quick response. I had hoped you might have found something even better than what I’ve put together previously or perhaps started building a newer and shinier edifice.
There is actually an excellent and solid “plugin” for creating a blogroll, but it’s actually been hiding in WordPress core for ages: the original Link Manager. Use of it declined so much it was programatically “removed”, but all the code is still in core, it still works wonderfully, and it only requires a single line of code (or the simplest plugin ever written) to re-enable it.
It was very solid and didn’t need much iteration, so it should work fine with current versions of WordPress–it certainly does on mine.
I’ve written up a bunch of details on how and what I did (as well as why), so hopefully it’ll give you a solid start including some custom code snippets and reasonably explicit directions to make some small improvements for those that may be a bit code-averse. Hint: I changed it from being a sidebar widget to making it a full page. Let us know if you need help making some of the small code related changes to get yourself sorted.
Even if you just want a plug and play plugin, there are details for that in the post as well, you’ll just be stuck with putting the blogroll into a traditional sidebar position. (With conditional statements in the sidebar widget, you could restrict the blogroll widget to only displaying on a “Following” page, for example.)
I do think there is still a more IndieWeb way of doing this, potentially by making follow posts with mark up that could be parsed by microsub readers perhaps? Certainly dovetailing something with microsub seems to be a laudable goal. I would like to eventually dive into the Link Manager code and add some additional microformats as well as update the OPML to v2, but there’s enough back compatibility that the older version is fine for most use cases I’ve run across. I know David Shanske has some ideas about some changes he’d like to see in the future as well. You could always also go super low tech the way Greg did and have a blogroll post that you update over time, though perhaps a page is a better way to go? Updating things to be more automated is certainly a reasonable goal though.
Give it a spin and see what you think. Here’s my Following page (aka blogroll) with details at the very bottom for subcategories of OPML subscription. I’ll try to update the IndieWeb blogroll page with some of these details to make them more imminently findable as well.
I very much appreciate how Sven Knebel extensively responded to my previous posting on some Webmention issues I came across. Some of his responses do make me have new questions. About the wrong URL, i.e. not the source of the webmention, showing up in a Webmention, Sven writes: …. There’s a href...
Last week was the 8th annual IndieWeb Summit held in Portland, Oregon. While IndieWeb Camps and Summits have traditionally been held on weekends during people’s free time, this one held in the middle of the week was a roaring success. With well over 50 people in attendance, this was almost certainly the largest attendance I’ve seen to date. I suspect since people who flew in for the event had really committed, the attendance on the second day was much higher than usual as well. It was great to see so many people hacking on their personal websites and tools to make their personal online experiences richer.
The year of the Indie Reader
Last year I wrote the post Feed Reader Revolution in response to an increasingly growing need I’ve seen in the social space for a new sort of functionality in feed readers. While there have been a few interesting attempts like Woodwind which have shown a proof-of-concept, not much work had been done until some initial work by Aaron Parecki and a session at last year’s IndieWeb Summit entitled Putting it all Together.
Over the past year I’ve been closely watching Aaron Parecki; Grant Richmond and Jonathan LaCour; Eddie Hinkle; and Kristof De Jaeger’s collective progress on the microsub specification as well as their respective projects Aperture/Monocle; Together; Indigenous/Indigenous for iOS; and Indigenous for Android. As a result in early May I was overjoyed to suggest a keynote session on readers and was stupefied this week as many of them have officially launched and are open to general registration as relatively solid beta web services.
I spent a few minutes in a session at the end of Tuesday and managed to log into Aperture and create an account (#16, though I suspect I may be one of the first to use it besides the initial group of five developers). I also managed to quickly and easily add a microsub endpoint to my website as well. Sadly I’ve got some tweaks to make to my own installation to properly log into any of the reader app front ends. Based on several of the demos I’ve seen over the past months, the functionality involved is not only impressive, but it’s a properly large step ahead of some of the basic user interface provided by the now-shuttered Woodwind.xyz service (though the code is still available for self-hosting.)
Several people have committed to make attempts at creating a microsub server including Jack Jamieson who has announced an attempt at creating one for WordPress after having recently built the Yarns reader for WordPress from scratch this past year. I suspect within the coming year we’ll see one or two additional servers as well as some additional reading front ends. In fact, Ryan Barrett spent the day on Wednesday hacking away at leveraging the News Blur API and leveraging it to make News Blur a front end for Aperture’s server functionality. I’m hoping others may do the same for other popular readers like Feedly or Inoreader to expand on the plurality of offerings. Increased competition for new reader offerings can only improve the entire space.
Even more reading related support
Just before the Summit, gRegor Morrill unveiled the beta version of his micropub client Indiebookclub.biz which allows one to log in with their own website and use it to post reading updates to their own website. For those who don’t yet support micropub, the service saves the data for eventual export. His work on it continued through the summit to continue to improve an already impressive product. It’s the fist micropub client of its kind amidst a growing field of websites (including WordPress and WithKnown which both have plugins) that offer reading post support. Micro.blog has recently updated its code to allow users of the platform the ability to post reads with indiebookclub.biz as well. As a result of this spurt of reading related support there’s now a draft proposal to add
read-status support as new Microformats. Perhaps reads will be included in future updates of the post-type-discovery algorithm as well?
Given the growth of reading post support and a new micropub read client, I suspect it won’t take long before some of the new microsub-related readers begin supporting read post micropub functionality as well.
In addition to David Shanske’s recent valiant update to the IndieAuth plugin for WordPress, Manton Reece managed to finish up coding work to unveil another implementation of IndieAuth at the Summit. His version is for the micro.blog platform which is a significant addition to the community and will add several hundred additional users who will have broader access to a wide assortment of functionality as a result.
While work continues apace on a broad variety of fronts, I was happy to see that my proposal for a session on IndieAlgorithms was accepted (despite my leading another topic earlier in the day). It was well attended and sparked some interesting discussion about how individuals might also be able to exert greater control over what they’re presented to consume. With the rise of Indie feed readers this year, the ability to better control and filter one’s incoming content is going to take on a greater importance in the very near future. With an increasing number of readers to choose from, more people will hopefully be able to free themselves from the vagaries of the blackbox algorithms that drive content distribution and presentation in products like Facebook, Twitter, Instagram and others. Based on the architecture of servers like Aperture, perhaps we might be able to modify some of the microsub spec to allow more freedom and flexibility in what will assuredly be the next step in the evolution of the IndieWeb?
While there are miles and miles to go before we sleep, I was happy to have seen a session on diversity pop up at the Summit. I hope we can all take the general topic to heart to be more inclusive and actively invite friends into our fold. Thanks to Jean for suggesting and guiding the conversation and everyone else for continuing it throughout the rest of the summit and beyond.
Naturally, the above are just a few of the bigger highlights as I perceive them. I’m sure others will appear in the IndieNews feed or other blogposts about the summit. The IndieWeb is something subtly different to each person, so I hope everyone takes a moment to share (on your own sites naturally) what you got out of all the sessions and discussions. There was a tremendous amount of discussion, debate, and advancement of the state of the art of the continually growing IndieWeb. Fortunately almost all of it was captured in the IndieWeb chat, on Twitter, and on video available through either the IndieWeb wiki pages for the summit or directly from the IndieWeb YouTube channel.
I suspect David Shanske and I will have more to say in what is sure to be a recap episode in our next podcast.
Finally, below I’m including a bunch of photos I took over the course of my trip. I’m far from a professional photographer, but hopefully they’ll give a small representation of some of the fun we all had at camp.
While I’m thinking about it, I wanted to take a moment to thank everyone who came to the summit. You all really made it a fantastic event!
I’d particularly like to thank Aaron Parecki, Tantek Çelik, gRegor Morrill, Marty McGuire, and David Shanske who did a lot of the organizing and volunteer work to help make the summit happen as well as to capture it so well for others to participate remotely or even view major portions of it after-the-fact. I would be remiss if I didn’t thank Martijn van der Ven for some herculean efforts on IRC/Chat in documenting things in real time as well as for some serious wiki gardening along the way. As always, there are a huge crew of others whose contributions large and small help to make up the rich fabric of the community and we wouldn’t be who we are without your help. Thank you all! (Or as I might say in chat: community++).
And finally, a special personal thanks to Greg McVerry for kindly letting me join him at the Hotel deLuxe for some late night discussions on the intersection of IndieWeb and Domain of One’s Own philosophies as they dovetail with the education sector. With growing interest and a wealth of ideas in this area, I’m confident it’s going to be a rapidly growing one over the coming years.
I’d also like to take a moment to say thanks to all the sponsors who helped to make the event a success including Name.com, GoDaddy, Okta, Mozilla, DreamHost, and likely a few others who I’m missing at the moment.
I’d also like to thank the Eliot Center for letting us hosting the event at their fabulous facility.
Ian, thanks for putting together all of these examples. I think my preference is for option three which provides the most context and seems easiest to read and understand. I like the way you’ve incorporated the blue arrow, which makes semantic sense as well.
I’m sure I’ve seen other versions, but Jon Udell has at least one example of some annotations on his own website like yours too.
When it comes to the “conversation” side of what you’re looking for, I think the biggest piece you’re really missing and which some on the Hypothes.is side (except perhaps for Nate who may have a stronger grasp of their value after the recent IndiewWeb Summit) are apt to miss is that Hypothes.is doesn’t support sending webmentions. Presently you’re putting your data out there in a one-sided manner and Hypothes.is isn’t pushing the other side or any of the follow up back to you. As a result it’s operating as a social silo the same way that sites like Facebook and Twitter do. Based on their GitHub repository, I know that they’ve considered webmentions in the past, but apparently it got put on a back burner and hasn’t been revisited.
Ideally they’d want to have webmentions work in two places. It would be great if they could send webmentions of annotations/highlights to the original page itself, so that the site owner is aware that their content is being marked up or used in this manner. This also means that Hypothes.is could be used as a full-blown and simple commenting system as well so that those who aren’t using their own sites to write replies could use Hypothes.is as an alternative. The second thing it might want to do is to send webmentions, particularly for replies, to the original page as well as to any URLs that are mentioned in the comment thread which appears on Hypothes.is. This would mean that you’d want to add the permalink to your post back to the copy you put on Hypothes.is so that you and your website stay in the loop on the entirety of the conversation. In many senses, this is just mirroring what is going on in threaded Twitter conversations that get mirrored back to your WordPress website. [I’ll note that I think I’ve got the last of the moving pieces for this Twitter/WordPress workflow properly linked up in the past week.] Since Twitter doesn’t support webmentions itself, Brid.gy is handling that part for you, but in Hypothes.is’ case you don’t have any of the details coming back for allowing you to display the discussion on your site except by doing so manually. Doing it manually for extended conversations is going to become painful over time.
From an IndieWeb perspective, you’re primarily implementing a PESOS workflow in which you post first on Hypothes.is and then send a copy of it to your own website. Naturally it would be better if you were posting all the details on your own website and using the Hypothes.is API to syndicate your copy there for additional public conversation outside of the readership of your website. Unfortunately building the infrastructure to do this is obviously quite daunting. Since they’ve got an API, you might be able to bootstrap something webmention-like onto it, but for your purposes it would obviously be easier if they had direct webmention support.
It would also be wonderful if Hypothes.is supported the micropub specification as well. Then you could ideally log into the system as your website and any annotations you made could be automatically be published to your website for later storage, display, or other use. In some sense, this is what I’m anticipating by making explicit standalone annotation and highlight post kinds on my website. In practice, however, like you, I’d prefer to have a read, like, or bookmark-type of post that aggregates all of my highlights, annotations, and marginalia of a particular piece for easier future use as well as the additional context this provides. I suspect that if I had the additional tag within the Hypothesis Aggregator plugin for WordPress that would let me specify the particular URL of an individual article, I would have most of the front side PESOS functionality we’re all looking for. The rest will require either webmention or a lot more work.
I may have mentioned it before, but in case you hadn’t found it I’ve got a handful of posts on annotations, many of which include some Hypothes.is functionality.
Not itemized in that list (yet?) are some experiments I’d done with the Rory Rosenzweig Center’s PressForward plugin for WordPress. It allowed me to use a simple browser bookmarklet to save a webpage’s content to my personal website with a rel=”canonical” tag for the page pointing at the original page. (Here’s a good example.) Because of the way the canonical set up works within Hypothes.is, I noticed that annotations I (and others) made on the original were also mirrored and available on my website as well. In my case, because PressForward was copying the entirety of the article for me, I used the <mark> HTML tag to make the highlights on my page, but with Hypothes.is enabled, it also shows the other public annotations as well. (Use of the title attribute adds some additional functionality when the mark tagged text is hovered over in most browsers.)
In another example, I annotated a copy of one of Audrey Watters’ articles (after she’d disabled the ability for Hypothesis to work on her site, but before she changed the Creative Commons licensing on her website). But here I added my annotations essentially as pull-quotes off to the side and syndicated copies to Hypothes.is by annotating the copy on my website. If you visit Audrey’s original, you’ll see that you cannot enable Hypothesis on it, but if you’re using the Chrome extension it will correctly indicate that there are five annotations on the page (from my alternate copy which indicates hers is the rel=”canonical”).
In any case, thanks again for your examples and documenting your explorations. I suspect as time goes by we’ll find a more IndieWeb-centric method for doing exactly what you’ve got in mind in an even easier fashion. Often doing things manually for a while will help you better define what you want and that will also make automating it later a lot easier.
I’ve written about threading comments from one WordPress website to another before. I’ve long suspected this type of thing could be done with Twitter, but never really bothered with it or necessarily needed to do it, though I’ve often seen cases where others might have wanted to do this.
For a post today, I wrote on my own site and syndicated it to Twitter and got a reply back via webmention through Brid.gy. This process happens for me almost every day, and this all by itself feels magical. The real magic however, and I don’t think I’ve done this before or seen it done, was that I replied to the backfed comment on my site inline and manually syndicated to Twitter using a permalink of the form
http://www.example.com/standard-permalink-structure/?replytocom=57527#respond, where 57527 is the particular comment ID for my inline comment. (This comment ID can typically be found by hovering over the “Reply” or “Comment” button on one’s WordPress website in most browsers.)
I’ve now got a nested copy of the conversation on my site that is identical to the one on Twitter.
I suspect that by carefully choosing the URL structure you syndicate to Twitter, you’ll allow yourself more control over how backfed comments from Brid.gy nest (or don’t) in your response section on your site.
Perhaps even more powerfully, non-WordPress-based websites could also use these permalinks structures for composing their replies to WordPress sites to have their replies nest properly too. I think I’ve seen Aaron Parecki do this in the wild.
Since the WordPress Webmention plugin now includes functionality for sending webmentions directly from the comments section, I’ll have to double check that the microformats on my comments are properly marked up to see if I can start leveraging Brid.gy publish functionality to send threaded replies to Twitter automatically. Or perhaps work on something that will allow automatic replies via Twitter API. Hmmm…
Despite the fact that this could all be a bit more automated, the fact that one can easily do threaded replies between WordPress and Twitter makes me quite happy.
For more on my IndieWeb explorations with Twitter, see my IndieWeb Research page.