Updating my WordPress plugins

I’ve cobbled a few WordPress plugins together, primarily to do stuff on UCalgaryBlogs by exposing built-in WordPress functionality through shortcodes so that people don’t have to manually edit themes.

And then I basically ignored the plugins for a few years, because they don’t actually do anything, so there’s not much to update or fix. But it looks bad if a plugin hasn’t been tested with recent versions of WordPress, so I just did some testing of them all. They all work on WP 4.4.2, and I’ll re-test after 4.5 drops. I did find some funkiness in one of the plugins, and that’s been taken care of (and I made it a bit more generalizable, so yay progress). I’m hoping to give the plugins some more love – I definitely need to spend more time actually building things instead of just talking about the stuff that people do with the things I made a few years ago…

Post Revision Display may become more active – a new developer was just added to the project, which means some new energy and ideas…

wordpress-plugins-update

Source: WordPress › Profiles » D’Arcy Norman

RIP Structured Blogging and Microformats?

I’d experimented with the Structured Blogging plugin for WordPress almost 3 years ago. It’s a way to add structured, complex data to regular blog posts, and provides both human- and machine-readable versions of the content in order to support aggregation and syndication of the data by any service that supports it. The plugin adds a bunch of extra types of posts, from generic reviews and events, to more specific formats such as Journal Article and Book. Those two formats would be extremely useful to any student (or faculty member) who is collecting notes on academic research for use in their studies.

The Journal Article and Book formats also integrate with services to automatically look up reference data. For example, while writing a review of an article in Nature, all I would have to do is enter the article title and click “Lookup: PubMed” – and the rest of the data was automatically queried and entered into the article review.

Similar features are available for books (via Amazon.com). And some formats also provide star ratings as additional fields, making ranking and reviewing items very simple.

Sure, it could be argued that the implementation is somewhat hackish – it replaces the rich text editor, and stores XML in the post content – but it works. That’s really all that matters.

Unfortunately, the Structured Blogging project appears to be defunct. The website has been abandoned, and the WordPress plugin hasn’t been updated since March 2007. The WordPress plugin still works, though, but for how long?

Hopefully, the promise of structured blogging and microformats won’t be abandoned outright. The decentralized, flexible nature of these complex content types has some really interesting implications on distributed publishing and recontextualization of information. It would be a shame to have that completely disappear.

WordPress Plugin – Post Revision Display

One of the profs using UCalgaryBlogs.ca was asking if there was a way to show the “audit trail” for a blog posts. If she’s having students write stuff, and needs it in by a given date (say, an assignment deadline), she’d like a way to know if a post was saved before the deadline, or updated after it. It’s easy for people to futz around with the “published on” date for a post…

So, I did some poking around, looking for plugins or tricks to expose the revision display list without having to send the prof to the blog’s admin UI every time she wanted to look at the info.

I couldn’t find anything, so I asked a question on the WordPress support forum. On a tip from Otto42, I poked around with the wp_list_post_revisions() function. Looks exactly like what I need. So it was pretty simple to write a basic plugin that adds a Filter such that the list gets generated and appended to every post displayed on a blog that uses the plugin. If you’re logged in, and have proper privileges, you’ll also get a link to view the revisions directly. If not, you just get to see that the revisions exist.

I had to copy the wp_list_post_revisions() function and modify it a bit in the plugin, so it behaved as needed. Nothing too major, but the WordPress function relies on echo to dump the list directly, and I needed to modify it to return a string to append to the blog post. Easy peasy.

And so, post-revision-display is born. Install and activate it on your blog, and your posts will automagically generate and display the list of revisions as an audit trail, with no futzing about with themes and hardcoding stuff. Here’s what the audit trail looks like:

Download the plugin here (for now – I’m trying to get it added to WordPress.org/extend/plugins…)

Ingesting Open Content into a Course Blogsite

One of the use-cases for UCalgaryBlogs.ca is for a class to integrate external resources such as OpenLearn courses, or potentially anything that has an RSS feed, to be ingested into the class blogsite. Currently, there are 2 scenarios possible for doing this, each with their own specific benefits, but neither quite matching what I think would make for a more powerful way to contextualize these external resources within the activities of a course.

With the VERY sweet OpenLearn Republisher plugin, you can set up a set of Sources (courses on OpenLearn, etc…) to be pulled into an installation of WordPress Multiuser. The OpenLearn plugin creates a new blog for each Source, and sucks down all items in the provided RSS feed into that blog, and creates blog Posts for each item.

OpenLearn Course Importing Plugin Workflow
OpenLearn Course Importing Plugin Workflow

The benefit of this is a set of centralized blog sites for each course, which could be shared across multiple courses. But that’s also the big downside of this model – what if you want to contextualize the content differently for each course that’s using it? If you didn’t want to do that, why not just use the online OpenLearn hosted version of the course?

With FeedWordPress (or wp-o-matic) you can pull RSS feeds into a single course blogsite, and all items will be published as blog Posts within that site. Categories can be set up and inherited to help organize the imported content.

FeedWordPress RSS Importing Workflow
FeedWordPress RSS Importing Workflow

But, if the activity of the course takes place as blog Posts, it becomes mixed in with any content imported from the external resources. Conversation and content become merged.

Ideally, a course blogsite would use the Pages feature to manage “content” – the stuff the conversations refer to – and use the blog Posts for the activity and conversation of the course. As such, I think it would be more effective to have the content from external resources be ingested into a blogsite as Pages, created within the hierarchy of pages (select a parent page, and a full table of contents structure is generated as needed).

Ideal open content ingestor workflow
Ideal open content ingestor workflow

I’m not sure if that’s possible now with the available tools, but I think we’re getting REALLY close to a powerful open content contextualization platform – ingesting prepared resources for use within the spatial and temporal contexts of a course.

Ideally, the power and features of OpenLearn Republisher, with the ability to designate the “host” blog for the ingested content (or have it create new blogsites as needed), and to create Pages rather than Posts. It’s VERY close, and it’s got the potential to change how people interact with (open) content.

on disabling excessive stats

I just disabled two separate blog stats packages, each for a different reason. This move was partially inspired by the upcoming “F*** Stats – Make Art!” session on the docket at Northern Voice.

First, I disabled the FeedBurner FeedSmith integration plugin. This is a handy way to automatically redirect requests for RSS feeds to the FeedBurner service. I had decided to use FeedBurner as a way to reduce the load on my Dreamhost shared server – the feed would be cached by FeedBurner and served from there, removing a tonne of requests off-site. It did the trick, but at the cost of handing control of my blog’s feed over to a third party (who has since been absorbed by Google). One direct negative side effect of the FeedBurner plugin is that it seemed to interfere with tag- and category-based feeds. That shouldn’t be a problem anymore. I’ll miss some of the stats, but I really don’t need that much data. Now, how do I get the 1494 people sucking the feed off of FeedBurner to come back to the real source? FeedBurner offers to put up an ugly “BLOG MOVED. PLEASE UPDATE SUBSCRIPTIONS” notice to nudge people into resubscribing to the proper URL. But they provide pretty seamless redirection to get people TO FeedBurner. A bit of a roach motel syndrome going on there. You can check in, but you can never leave. (OK. ‘never’ is a little overblown, but it’s not realistic to expect everyone to update their subscriptions – I can’t remember the last time I did that…)

The second plugin to get switched off today is the very cool, extremely addictive, but ultimately creepy Blog Voyeur plugin. It didn’t track any additional info, but presented a list of people who have commented on the blog, and the last page they’ve visited, thanks to the “remember me” cookie. It’s not too invasive, but I felt like I should put on a trenchcoat while viewing the Voyeur report page. It didn’t help that feeling much by inserting “YOU ARE BEING WATCHED” on the comment submission form – I agree that notification is necessary, but maybe with less-creepy wording?

I’m not giving up on stats altogether, but am limiting them to just Google Analytics and WordPress.com Stats. They’re both generic and anonymous stats packages, without the level of creepiness of Blog Voyeur, and the loss of control involved with FeedBurner.

Automatically Updated Colophon

The colophon, listing the various bits that get twiddled to run my blog, has been woefully out of date. I get periodic emails about the various plugins I use, especially the latest Podpress plugin, so I thought it’d be a good idea to automate the process of updating the list. Enter the bdp_setup plugin by Bryan Palmer at ozpolitics.info.

The colophon is now automatically generated, and guaranteed to stay up to date for as long as I’m using Wordpress to run my blog…

The colophon, listing the various bits that get twiddled to run my blog, has been woefully out of date. I get periodic emails about the various plugins I use, especially the latest Podpress plugin, so I thought it’d be a good idea to automate the process of updating the list. Enter the bdp_setup plugin by Bryan Palmer at ozpolitics.info.

The colophon is now automatically generated, and guaranteed to stay up to date for as long as I’m using WordPress to run my blog…

PodPress – podcast manager for WordPress

I just saw the PodPress plugin mentioned in the WordPress dashboard feed, so checked it out quickly. What a kick-ass plugin! Totally manages podcast publishing, enclosures, web players, iTunes integration. Handles files uploaded to the blog, as well as remote files (absolute urls). Presents mp3, m4a, mov, mp4, pdf, etc… files. Very nice.

I’ve updated the most recent 2 entries in my podcast section, to see how it works. Pretty slick.

I just saw the PodPress plugin mentioned in the WordPress dashboard feed, so checked it out quickly. What a kick-ass plugin! Totally manages podcast publishing, enclosures, web players, iTunes integration. Handles files uploaded to the blog, as well as remote files (absolute urls). Presents mp3, m4a, mov, mp4, pdf, etc… files. Very nice.

I’ve updated the most recent 2 entries in my podcast section, to see how it works. Pretty slick.

Downgrading Akismet

Akismet is the “official” WordPress response to the soul-sucking rampages of blog comment spam. It promises to make spam magically vanish by harnessing the Hive Mind to banish spam en masse. But it doesn’t work. I’ve been getting a fair amount of spam approved by Akismet as ham, when they are obviously spam. Not sure what’s going on there, but I’d guess that since anyone can flag comments as spam/ham, that the spammers are getting in the game themselves. Total guess though.

A couple of weeks ago, I turned off Spam Karma 2 to see how Akismet performed now that the system has had a few months to “warm up”. The result wasn’t exactly impressive. False negatives, false positives, and excessive moderation.

I could live with a few false negatives – the occasional spam slipping through the cracks and appearing on my blog isn’t the end of the world. But I’ve also had a couple of false positives. Valid comments banished by Akismet. I can manually resurrect them, but what If I don’t check regularly? It’d be really easy for false positives to get lost in the sea of spam (ick).

Also, Akismet routinely pushes comments into moderation purgatory. Someone attempts to post a valid comment, to be rewarded with an “I don’t trust you. Please wait for your comment to be blessed by the High Priestesses of Blog before being deemed worthy of being displayed here.” OK, it’s not exactly as rude as that, but the sentiment is the same, and not exactly conducive to conversation.

So, I’m going back to Spam Karma 2. It rocks hard, and is intelligent enough to block spam and approve ham without intervention. It even has an Akismet plugin for SK2 to let me harness the Hive as a last resort. But even that limited role of Akismet has proven to be the only weak link in SK2’s otherwise impervious armour, so I’ve downgraded Akismet’s influence from “normal” to “moderate.”

Can’t say enough good things about SK2. Since I first started using it, back when the world was young and Grandfather Bear roamed the forest, SK2 has nuked over 8700 spam attempts. About 100 attempts per day, and for 99.99% of them, I don’t even get notified. And so far there have been zero false positives (it keeps the comments and I periodically eyeball it to make sure).

Akismet is the “official” WordPress response to the soul-sucking rampages of blog comment spam. It promises to make spam magically vanish by harnessing the Hive Mind to banish spam en masse. But it doesn’t work. I’ve been getting a fair amount of spam approved by Akismet as ham, when they are obviously spam. Not sure what’s going on there, but I’d guess that since anyone can flag comments as spam/ham, that the spammers are getting in the game themselves. Total guess though.

A couple of weeks ago, I turned off Spam Karma 2 to see how Akismet performed now that the system has had a few months to “warm up”. The result wasn’t exactly impressive. False negatives, false positives, and excessive moderation.

I could live with a few false negatives – the occasional spam slipping through the cracks and appearing on my blog isn’t the end of the world. But I’ve also had a couple of false positives. Valid comments banished by Akismet. I can manually resurrect them, but what If I don’t check regularly? It’d be really easy for false positives to get lost in the sea of spam (ick).

Also, Akismet routinely pushes comments into moderation purgatory. Someone attempts to post a valid comment, to be rewarded with an “I don’t trust you. Please wait for your comment to be blessed by the High Priestesses of Blog before being deemed worthy of being displayed here.” OK, it’s not exactly as rude as that, but the sentiment is the same, and not exactly conducive to conversation.

So, I’m going back to Spam Karma 2. It rocks hard, and is intelligent enough to block spam and approve ham without intervention. It even has an Akismet plugin for SK2 to let me harness the Hive as a last resort. But even that limited role of Akismet has proven to be the only weak link in SK2’s otherwise impervious armour, so I’ve downgraded Akismet’s influence from “normal” to “moderate.”

Can’t say enough good things about SK2. Since I first started using it, back when the world was young and Grandfather Bear roamed the forest, SK2 has nuked over 8700 spam attempts. About 100 attempts per day, and for 99.99% of them, I don’t even get notified. And so far there have been zero false positives (it keeps the comments and I periodically eyeball it to make sure).

Dumping “Ultimate Tag Warrior” Plugin

Ultimate Tag Warrior provided a really handy way to tag posts in WordPress, by just entering tags into a text field ala del.icio.us or Flickr.

But, it uses its own tags database, meaning external tools like Flock, MarsEdit, Ecto, etc… are unable to tag new posts. And I get to do some funkery each time I update the K2 theme to match the latest and greatest beta.

So, I just spent a couple of hours this evening manually migrating UTW tags to be stored in stock WordPress Categories. I would have played around with some SQL to do it, but would rather do some mindless copy/pastery in front of the tube.

Dropping UTW seems to have shaved almost 100 database queries from the generation of the front page of this blog. That ain’t half bad.

And, by using a combination of the Cat2Tag v 2.0 and WordPress Heat Map plugins, I wind up with a better solution anyway.

Ultimate Tag Warrior provided a really handy way to tag posts in WordPress, by just entering tags into a text field ala del.icio.us or Flickr.

But, it uses its own tags database, meaning external tools like Flock, MarsEdit, Ecto, etc… are unable to tag new posts. And I get to do some funkery each time I update the K2 theme to match the latest and greatest beta.

So, I just spent a couple of hours this evening manually migrating UTW tags to be stored in stock WordPress Categories. I would have played around with some SQL to do it, but would rather do some mindless copy/pastery in front of the tube.

Dropping UTW seems to have shaved almost 100 database queries from the generation of the front page of this blog. That ain’t half bad.

And, by using a combination of the Cat2Tag v 2.0 and WordPress Heat Map plugins, I wind up with a better solution anyway.

Performancing Weblog Editor for Firefox

The “Performancing” folks just released a plugin for Firefox that provides a fully featured weblog editor, ala Flock. I’m trying it out now – it appears to talk to WordPress OK (well, if this made it to the blog, that is).

It appears to have a decent WYSIWYG editor, but the image embedding doodad doesn’t seem to have an upload utility – so I think you have to manually upload an image and then paste the URL into the image widget. Not fatal, but an “easy” improvement to the plugin. (I know, “easy” is oversimplifying it, since the plugin is aimed at being platform agnostic, so you’d have to have special cases for WP, MT, Blogger, etc…)

Update: Well, let’s see… the HTML it produces sucks badly. Editing a post appears to create a duplicate post (leaving the unedited original, and creating a new one with the edited version). Don’t think I’ll be using this one much…

Update 2: I was a little hard on the Performancing Firefox extension out of the gate. I wasn’t happy with the WYSIWYG HTML, but switching to “raw code” mode gives me essentially the stock WordPress text editor, which is what I’m used to. Also, I must have missed the “Publish as Edit” button – which is displayed right next to the “Publish to:” button – I don’t see how I could have missed that big button. Anyway, if this post was edited, then it works fine 🙂

Yup. that worked. OK, so now I see it as one step more advanced than the stock WP bookmarklets – since it gives you access to the post history so you can easily edit older posts. But, in WordPress, once you’ve been logged on, all posts anywhere you see them on your blog have an “edit” link, so it’s so easy to edit older posts anyway…

The “Performancing” folks just released a plugin for Firefox that provides a fully featured weblog editor, ala Flock. I’m trying it out now – it appears to talk to WordPress OK (well, if this made it to the blog, that is).

It appears to have a decent WYSIWYG editor, but the image embedding doodad doesn’t seem to have an upload utility – so I think you have to manually upload an image and then paste the URL into the image widget. Not fatal, but an “easy” improvement to the plugin. (I know, “easy” is oversimplifying it, since the plugin is aimed at being platform agnostic, so you’d have to have special cases for WP, MT, Blogger, etc…)

Update: Well, let’s see… the HTML it produces sucks badly. Editing a post appears to create a duplicate post (leaving the unedited original, and creating a new one with the edited version). Don’t think I’ll be using this one much…

Update 2: I was a little hard on the Performancing Firefox extension out of the gate. I wasn’t happy with the WYSIWYG HTML, but switching to “raw code” mode gives me essentially the stock WordPress text editor, which is what I’m used to. Also, I must have missed the “Publish as Edit” button – which is displayed right next to the “Publish to:” button – I don’t see how I could have missed that big button. Anyway, if this post was edited, then it works fine 🙂

Yup. that worked. OK, so now I see it as one step more advanced than the stock WP bookmarklets – since it gives you access to the post history so you can easily edit older posts. But, in WordPress, once you’ve been logged on, all posts anywhere you see them on your blog have an “edit” link, so it’s so easy to edit older posts anyway…