FeedWordPress is the magic elixer, the glue that binds ds106 and its satellite sites together- we are currently syndicating in over 500 blogs to the main ds106 site.

By the use of extra tags we add to each feed (e.g. one to designate open online participants, one to designate the different groups that use the course like York College and Scott Lockman’s classes in Japan), we are able to not only split out content in the main site, but because of wordpress making feeds off of tags, content can be re-syndicated to other sites, which is how content is funneled to the summer 2012 iteration of ds106 as well as the assignment bank.

We are syndicating what we are syndicating! Last week we had a great Skype brainstorm with the developer of the plugin, who is going to take on some suggestions we have for improving a few things, notably now the gap that adding feeds is a manual process, to one that can be automatic based on the user profiles set up in Buddypress (this is where some of that Kickstarter community donated funds is going to use).

Until then, I have been hacking out a few things from Feedwordpress. All of the information about feeds is stored in the wordpress links area, making it available for some custom queries as needed. The first was I wanted to have a place on the Magic Macguffin site where all of the blogs we are syndicating in are listed, so campers can let us know if we have not added their blog.

This is a page with a custom template (name the template page-id.php where id is the wordpress id for that page). The meat of it is a direct SQL query to roll through the links and find ones where the notes include “magicmacguffin” the id tag we use to send content to this site (a key task is using switch_to_blog() so we can access the table from another site):

That gave me the leg work to do what I hope is a timesaver- since we have grouped our Magic Macguffin participants into bunkhouse groups, I sat down to make up OPML files for each group. This is useful as a way for people to easily see what is new in their bunk, but because we have the tags, we can also make bundles for open online participants, and counselors, and UMW students (a tutorial on setting up Google Reader with OPML imports is coming…)

I began by adding feeds to Google Reader, then exporting, and manual editing separate OPML files. BORING. and tedious. and requiring re-edits. It hit me I could likely do the same dynamically from the FeedWordPress links data.

What this new version does is sit at the root level of the main ds106 site. It uses a nifty feature that allows you to incorporate the WordPress core functions into any PHP file, not just one to render blog content. And it sends back header info so that what is generated is a downloaded file.

So here are the OPML’s we can generate now

The groovy thing in Reader is that these are created as folders (or labels in their parlance) so you can view an aggregate of all feeds within the set or just single blogs within.

Here is the code for magic-opml (open to suggestions if I am missing something). It is pretty much an experiment now, maybe it should be rolled into a theme or a plugin?

Whaddya think?

The post "Dynamic OPML Files Generated from FeedWordPress" was originally scraped from the bottom of the pickel barrel at CogDogBlog (http://cogdogblog.com/2012/06/dynamic-opml-feedwordpress/) on June 3, 2012.

11 Comments

  • Jim Groom bavatuesdays.com

    I love this, and the idea that we can start automating some of the features for FeedWordPress for a ds106 -inspired architecture is exciting. I can’t thank you, Martha, and Timmy enough for articulating all the nuances happening in such a setup, making this process simple is crucial, and we have to see if Boone might not talk with Charles Johnson about the BuddyPress specific integration stuff. Some advice from Boone may go a long way. Subscribed to the Bunk House 5 OPML< though I am ready to disown them given the stupid ass bunk name.

  • John

    Brilliant. I’ve been hoping for some spelling out of how ds106 is done. Started looking at feedwordpress a few days ago lots of possibilities.
    I am wondering when the extra tags you add are added? In feedwordpress: categories &tags I guess?
    Wonderful use of the kickstarter cash.
    Thanks too for the code. Enough comments that the WordPress newbie like myself can begin to understand.

    • Alan Levine aka CogDog cogdogblog.com

      Yes John, we add the special tags we use, one for each section of ds106, one for magicmacguffin participants, one for being an open online participant– to the post tags when we add a new feed to FWP.

      What it does is really subtle and Martha Burtis deserves credit for this little bit- when we tag something like “magicmacguffin”, it organizes it in ds106 as a display like http://ds106.us/tag/magicmacguffin — this means we can then re-syndicate over on that site by subscribing it to http://ds106.us/tag/magicmacguffin/feed

      This is also how all of the examples are brought into the assignments site, by bringing in ds106 tagged content (DesignAssignments tag, VisualAssignments tag)- it is syndication of syndication.

      • Appreciate the detail, wonder if the extra tags could be automated by Feedwordpress getting its extra tags from buddypress (no idea, just blue sky)
        Very impressed with feedwordpress, did a wee test with a 300-400 opml feed and imported a few thousand post in jig time, this on shared hosting.

        • Alan Levine aka CogDog cogdogblog.com

          Thats what we are asking the developer to do for us- to make the subscription automatic form a profile field in BP, as well as a tag based on their affiliation selection (and a default tag for all mew feeds).

  • Ben Harwood harwoodben.com

    Awesome! Thanks for sharing, Tim, Jim, Martha and Jim. No BuddyPress at all? So I experimented with Feed WordPress in the past but with disastrous results…! It may not be playing nice with other plugins. WPMU has an alternative plugin it recommends but I thought it was pretty lame so backburnered the feedburner question altogether. Until now. Speaking of kickstarter cash, when’s my DS106 tee shirt and socks coming in the snail mail? :-)

  • Ben Harwood harwoodben.com

    When I looked into it awhile back, WPMU Dev was recommending Autoblog for WordPress newbies like me. http://premium.wpmudev.org/project/autoblog/

    • Alan Levine aka CogDog cogdogblog.com

      We use BuddyPress, but not to a great degree; with our interactions taking place in twitter and in blog space, I’m not sure how we might (or why) motivate people to interact elsewhere. We do use BP to manage the profiles of participants, and in the future the info entered there will drive the subscription of feeds into FWP.

      I really cannot say much here as I dont know what disastrous results are, and sorting out conflicts is not easy. I’ve used FWP on a few other projects (small number of feeds) without problem, but it has been rock solid on ds106 for a long while.

      The kickstarter stuff is in progress, have no fears, you will get your swag!

  • Integrating FeedWordPress with BuddyPress | bavatuesdays bavatuesdays.com/integrating-feedwordpress-with-buddypress

    […] Widget to generate list of blogs associated with a particular FWP applied  tag (or all) – I [Alan Levine] just hacked one for magic macguffin http://magicmacguffin.info/subscribed/ documented at http://cogdogblog.com/2012/06/03/dynamic-opml-feedwordpress/ […]

  • Shortcodes, Widgets, ‘n Duct Tape - CogDogBlog cogdogblog.com/2012/08/29/shortcodes-widgets-duct-tape

    […] This was code I wrote over the summer Dynamic OPML Files Generated from Feed WordPress. […]

  • Ken Bauer

    Digging this up again since I really want to view my students’ posts via Inoreader and manually adding was painful. Inoreader support OPML import and of course my Google search pointed me here.

Leave a Comment

All fields are required. Your email address will not be published.

Creative Commons License
Dynamic OPML Files Generated from FeedWordPress by CogDogBlog is licensed under a Creative Commons Attribution-Share Alike 4.0 License.