Given a different type of planning I’d have started with Alan’s Daily Create Theme but that’s now how these particular stars aligned. Instead I had a course site that was mostly built and had been polished in a variety of theme specific ways when the daily create idea came up. I didn’t really want to mess with switching themes etc. as time is getting short. Plus there was probably more than a bit of curiosity if I could stitch 80% of the functionality together via non-programmistan means.
I turned to a few of my old standbys to get this done. The theme remains Flat Bootstrap. The plugins pulling the majority of the weight are-
- Feed WordPress– pulls in the student blogs, Flickr images, and possibly Twitter via this
- Gravity Forms– lets the site admins create daily create prompts in a structured way without needing to know exactly what they’re doing
- Display posts shortcode– lets us easily embed the participant submissions with the prompt
- Simply Exclude– will allow us to include/exclude categories from specific pages. In this case I just wanted to keep the Flickr generated daily create elements from cluttering up the main bloggregate page. I’m ok with showing blog submissions here even if they are daily creates.
- On the looks side, I’m using Jetpack to do the custom CSS and Auto Post Thumbnail to automatically create featured images.
Step 1 – The Challenge Creator/Displayer
I wanted an easy way for the instructors to create challenge post that would outline the task and aggregate the responses. Gravity Forms seemed the easiest way to do this.
The main work here is done using a content template in the post body element. You can see the checkbox that turns on the content template (like mail merge) options in the image below. Once you have that turned on you can use other form elements and some default fields as variables to populate the body of the post. In this case I wanted to generate a unique tag- a challenge tag that is specific to each challenge. The easiest path to get that unique value was to combine the suffix CENR with the entry_id field that Gravity Forms automatically generates (and will auto increment per submission). I then display that variable in a few places in the post and use it as the tag that determines what posts the display-posts shortcode pulls in. I now have a unique tag created per challenge and the ability to show all the posts that are associated with that tag right there. Gravity Forms also keeps all the challenges formatted the same way and adds a bit of visual structure.
For any aggregated blogs things are straightforward. The addition of a challenge specific tag will get the content where we want it. If we wanted to exclude these posts we’d need to have students add a tag or category that designates them as daily create. That’s probably more trouble than it’s worth but if we change our mind later it’s easy to implement.
For Flickr (or Twitter if we end up wanting that) things are a little more complex. I can get RSS feeds from Flickr by tag. I initially used “collaborative curiosity” (the course title) as the main Flickr tag but I figured remembering to put that in quotes to prevent it becoming two tags and spelling curiosity correctly wasn’t worth the hassle. I then went with CENR but found that had results already and so I finally settled on VCUCENR. So all Flickr photos tagged with VCUCENR feed in through this url – https://api.flickr.com/services/feeds/photos_public.gne?tags=vcucenr&lang=en-us&format=atom. I changed the category settings at the feed level for this content so that all content coming in through Flickr belongs to a specific category which I could then exclude from specific pages. That base tag gets the Flickr images into the blog. In order for the image to get to the right challenge the user also needs to tag it with the challenge specific tag in Flickr.
I could do something very similar with Twitter submissions but I don’t think we’re going to be using that as the primary source of input so integrating that is on hold for now.
All in all, it’s not bad for no real programming and about 45 minutes of messing around. You can see it working live here.