Some thoughts on microblogging with self-hosted WordPress

We now have a notes, or status update section, and here's how we did it.

Owl! :)

I’ve been very interested in microblogging lately. That is, I’ve been looking into microblogging on a platform that’s not Twitter or Facebook, or owned by another large advertising company. I’m interested because even though I’m not a huge Twitter tweeter, I still find that my Twitter usage can sometimes detract from my writing time. Also, my content is a little less findable and searchable on Twitter than on the websites that I host. And, I want to be able to export my content easily and take it elsewhere.

I supposed I want to raise the bar on publishing platforms.

Also, many of my friends and colleagues sometimes have a hard time writing short, incomplete, meandering or question-oriented blog posts on their main platform. Their posts have tended to become more complete, more well-considered over time. This is fine, but this tendency to perfectionism can become an obstacle to writing and sharing.

I suppose I want to lower the bar on publishing posts.

So I’ve been experimenting with microblogging on self-hosted WordPress installs, on Mastadon (hosted by Fourth Estate), and on I also have a mostly unused Tumblr. And I’m still on Twitter, sure.

So I’ve finally enabled a microblog, or notes, on this website. Each individual note is kind of like a status update, but it’s not owned by someone else. It has an RSS feed  that is separate from the main feed. Titles are not required, which is the main difference between a blog post and a status update: titles are friction. The title is auto-generated, but editable.1

On the other hand, I’ve disabled feature images completely. That seems very important. And although I’ve expunged categories, I’ve retained tags – but I’ve renamed them microtopics.

Anyway, you can see our new Interrobang microblog, and I’m hoping our contributors are feeling like trying it out. It is very much an experiment and it’s a bit of a hack job, so bugs might abound.2 What follows below are some notes on how I did it just in case it’s helpful for someone else.

Notes on implementing our WordPress microblog

These are the steps roughly in setting up this kind of microblog.

Custom content type & taxonomy

The first step I took was to add a custom content type. Some folks use post formats instead. I considered this, but decided I wasn’t up for messing with the existing posts. I used this custom content type generator. And instead of adding the code to functions.php, I used the Code Snippets plugin, which I love. Then I decided that my custom content type needed a new taxonomy: microtopics. So I used the taxonomy generator. Here’s the code snippet.

Theme templates

I wanted the single note view, the note index view and the microtopic view to be structured in a particular way so I added three templates to this theme:

  • single-microblog.php
  • archive-microblog.php
  • taxonomy-microtopic.php

Titles and URLs

Having URLs and Titles autogenerated seemed important. I started out just using this bit of Fix Empty Titles code. But then I found the URLs were not getting updated to text, so they were just posting as the post ID. So I found this snippet that forces the URL to update with whatever new text is being used. The downside of this snippet is that it works across all content types, so it was messing with our post and page URLs. So I found some conditional code to help refine the function so it only operates over the custom content type.

Here’s the updated code snippet.

Microblog index URL

At some point I decided that I wanted the year and month in the note URL. And I found the custom content type URL is easy to manage with the Custom Post Type Permalinks plugin.


As a last step, I wanted to style the notes to look different than posts. Links are classic blue and footer info floats to the right, unless on smaller displays. I wanted avatars to show up. More work is needed.

Future thoughts, feature interests

There are a lot of folks out there that are interested in self-hosted microblogs. One challenge is to get these kinds of installations to be able to talk to one another. For example, on Twitter, folks can mention each other and users get notifications. And on Mastodon, users can mention each other across the fediverse and users get notifications, if they want. In WordPress, mentions are pings. Given the prevalence and tenacity of spam, I’m not sure what the future holds for this. But let me know if you see something cool happening.

Another challenge is being able to boost or re-up someone else’s dispatch. Maybe this is all that a hyperlink is; why reblog x when you can link to x? Food for thought.

Real time updates without reloads seems like an important feature for a microblog. JSON makes this possible, I think. There are other AJAX methods, but I’m not super up on this stuff. Let me know if you are.

Also, it would be good if microblogging was funner from my phone. Right now I sometimes sign into my self-hosted WordPress on a browser on my phone. But it’s not the best. There’s also a WordPress app for Android and iOS but I haven’t tested it in a while, and I haven’t tried it with custom content types.

And, finally, comments and favourites. On Twitter, the favourite is a little heart, which I heart. I plan to implement these on this microblog. I’ll let you know what I do.

Oh, and author-specific RSS feeds. That seems important too.

Let me know what features you want in your microblogging experience. With diligence and some ingenuity, we can lower the bar to publishing, together. Lol.

  1. Every microblog, or note, has it’s own URL, which is autogenerated and also editable.
  2. I’m thinking that this might be the basis for live blogging using JSON.