A Crowded Stream
As a result of owning all this data, my blog/site has become MUCH more active than it had been before. (It’s also been interesting to see just how much data I’d been giving to social media sites.) This extra activity has caused a few to tip me off that they’re seeing a lot of email notifications and additional material in their RSS feeds that they’re not used to seeing (and may not necessarily care about). So rather than risk them unsubscribing from everything and allow them to receive what they’re used to seeing, I’ve spent some time in the last couple of days to work on my IndieWeb Commitment 2017 which was to:
Fix my site’s subscription/mail functionality so that I can better control what current subscribers get and allow for more options for future subscribers.
Because a lot of the recent additions to my site have been things like owning all my Instagram posts, my bookmarks, what I’m watching, updates about books I’m reading, and links to everything I’ve been reading online, I’ve been using a category on the site called “Social Stream” with each of these posts as sub-categories. In most cases, social stream could be synonymous with microblog to some extent though it covers a broader range of content than just simply Twitter-like status updates.
Filtering Social Stream Posts out of My Email Subscriptions
I added a filter in my functions.php
file for the JetPack-based plugin that prevents my site from emailing those who have used the JetPack subscription service from receiving emails for each and every post in those categories.
I had previously been preventing some of these emails from firing on a manual basis, but with their increased frequency, it was becoming unsustainable.
For those interested, the code and some useful tips can be found at the JetPack site. A copy of the specific code I’m currently using in my functions.php file appears below:
add_filter( 'jetpack_subscriptions_exclude_these_categories', 'exclude_these' );
function exclude_these( $categories ) {
$categories = array( 'social-stream');
return $categories;
}
More Flexible RSS Feeds and Discovery
For future subscribers, I wanted to allow some easier subscription options, particularly when it comes to RSS. Fortunately WordPress does a pretty good job of not only providing RSS feeds but makes them relatively configurable and customizeable with good documentation. [1] [2]
Custom URLs for RSS Syndication and .htcacess Modifications
I wanted to create a few human-readable RSS feed names and feeds including:
- www.boffosocko.com/articles.xml
- www.boffosocko.com/microblog.xml
- www.boffosocko.com/instagram.xml
- www.boffosocko.com/linkblog.xml (things I’ve bookmarked or read)
- www.boffosocko.com/read.xml
- www.boffosocko.com/math.xml
- www.boffosocko.com/informationtheory.xml
With somewhat canonical feed URLs, I can always change where they point to in the future. To do this and have them map over into the actual feeds for these things, I did a bit of remapping in my .htaccess file based on some thoughts I’d run across recently. The code I used appears below:
# BEGIN rss
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^rss\.xml$ "/feed?cat=-484"[L,R]
RewriteRule ^microblog\.xml$ "/feed?cat=484"[L,R]
RewriteRule ^articles\.xml$ "/feed?kind=article"[L,R]
RewriteRule ^instagram\.xml$ "/feed?cat=936"[L,R]
RewriteRule ^linkblog\.xml$ "/feed?cat=964,945"[L,R]
RewriteRule ^read\.xml$ "/feed?cat=945"[L,R]
RewriteRule ^math\.xml$ "/feed?cat=10"[L,R]
RewriteRule ^informationtheory\.xml$ "/feed?cat=687"[L,R]
RewriteCond %{Query_STRING} ^$
RewriteRule ^feed$ "/rss.xml" [L,R]
</IfModule>
# END rss
Each of the cat=###
are the numbers for the particular category numbers I’m mapping within WordPress for the associated category names.
RSS Feed Pattern for IndieWeb Post Kinds Plugin
I also spent a few minutes to figure out the RSS feed patterns to allow for the additional feeds provided by the Post Kinds plugin to work. While Post Kinds is similar to the native WordPress post formats, it’s designed particularly with IndieWeb posts in mind and uses a custom taxonomy which also wraps particular post kinds in the appropriate microformats automatically. The general form for these RSS feeds would be:
Other feeds could be constructed similarly by replacing “article” with the other kinds including: bookmark, favorite, jam, like, listen, note, photo, read, recipe, reply, repost, watch, and wish. I suspect that most will only want the articles while those who are really interested in the others can either “build” them themselves for subscribing, or given the sporadic nature of some, they would more likely be interested in the “social stream” feed noted above.
Discoverability
Finally there’s the most important question of what feed readers like Feedly or Woodwind can actually discover when someone searches for an RSS feed on my domain. It’s one thing to have customized feeds, but if feed readers can’t easily find them, the subscriber is never likely to see them or know they exist to want to consume them. Most advanced feed readers will parse the headers of my site for discover-able feeds and present them to the user for possible subscription.
Out of the box WordPress provides two RSS feeds as standard: one for posts (essentially everything) and one for comments. I added several additional ones (like those mentioned above), which I thought might be most requested/useful, into my page header to provide a slightly broader range of subscription options. I even included a few feeds for alternate sites I run, like my WithKnown-based site. I suppose if I wanted I could advertise feeds for my favorite sites anywhere.
To add these additional feeds, I added several additional lines into my page header similar to the following example which makes my posts categorized or tagged as mathematics discoverable:
<link rel="alternate" type="application/rss+xml" title="Chris Aldrich » Mathematics Feed" href="http://boffosocko.com/math.xml" />
Wrap up
Hopefully with these few simple changes, those who wish to subscribe to my blog by email won’t be inundated with a lot of the social details. Those who want all or even smaller portions of my feed can consume them more easily, and there’s a way to be able to consume almost anything you’d like by category, tag, or post format/post kind.
Now on to my stretch goal:
Finish my monthly email newsletter
Comments/Questions?
Is there a particular type of content I’m creating here that you’d like to subscribe to? Let me know in the comments below if there’s a feed of a post format/kind, category, or tag you’d like to have that isn’t mentioned above.
whoa, does twitter not t.co every URL in tweets?
whoa, does twitter not t.co every URL in tweets?
oms i’m getting stuck in twitter canoes and people don’t even notice because the @-mentions are hidden now
Great post. Lots to think about and implement. At the mo my own site only std posts and status. Bookmarks to pinboard etc. Lots to do.
I was actually referring to a presentation from @t youtu.be/FNr0JNwsLy8 where he gave the example of posting (and rejecting) comments etc
I think that the premise was that with #indieweb you have control over what is shown in/on your space and how
As my #indieweb comments go to spam (not sure why, but they do) when I manually accept them I choose not to post the ‘likes’ and ‘RTs’
This post is really useful. My solution had been to have multiple spaces. However, this provides a means of having multiple RSS’s instead
I really like this idea and will try to copy when I have time. @wiobyrne this could be your newsletter hack as well
I started implementing separate RSS feeds for different types of content a while back but just set them up to appear in the content search in readers like Feedly. They look great. Thanks for the walkthrough, Chris!