Archive for the ‘Development’ Category

Publish External Feeds in Your Wordpress Site

Thursday, April 17th, 2008

RSSIf you like this post, then consider subscribing to my full RSS feed. Subscribe now and you will get an offer that's only available to folks that read my feed!

Some folks don’t realize it, but Wordpress has integrated the ability to publish other feeds with some out of the box features. I’ve written in the past on how to publish a blog’s feed to give a boost to a site’s keyword density for improved search engine optimization - but this is how to do it right within Wordpress.

Wordpress has embedded Magpie and RSS Caching within its available functions:

  • fetch_rss — retrieve an RSS feed from a URL with automatic caching (included in rss_functions.php)
  • wp_rss — retrieve and display an RSS feed as an unordered list (included in rss_functions.php)
  • get_rss — retrieve and display an RSS feed as a list (ordering optional) (included in rss_functions.php)

IMO, the first method is the most useful because of the automatic caching. If you’d like to, for example, add a

<h2><?php _e(‘Social Media Events’); ?></h2>
<?php // Get RSS Feed(s)
include_once(ABSPATH WPINC ‘/rss.php’);
$rss fetch_rss(
http://eventful.com/rss/events/?q=%22social%20media%22&location_type=&location_id=&l=Worldwide’);
$maxitems 5;
$items array_slice($rss->items0$maxitems);
?>

<ul>
<?php if (empty($items)) echo ‘<li>No items</li>’;
else
foreach ( 
$items as $item ) : ?>
<li><a href=’<?php echo $item['link']; ?>‘ 
title=’<?php echo $item['title']; ?>‘>
<?php echo $item['title']; ?>
</a></li>
<?php endforeach; ?>
</ul>

Edit your Wordpress template (Design > Theme Editor) and place the code above in your sidebar or on an events page. That’s it - now you have a live feed of events in your sidebar that you never have to update! This can really come in handy. I’ve done just that at I Choose Indy!, where I’ve published the Event feed from Smaller Indiana.

For more advanced users, you can put this in your single page theme and, perhaps, enter a search term as a Custom Field to add other bloggers’ posts on the same topics.

FeedBurner: Display your stats using the API

Thursday, April 3rd, 2008

Recently, I’ve been on a bender to clean up my site and remove all the odds and ends that take away from the theming, and most of all - don’t add to the visitor’s experience.

One of the items I removed was the Feedburner stat widget. I wanted to put my statistics up by my actual RSS button (see this article on how to implement my RSS badge), but make it look natural.

The first step was a little lazy, I didn’t want to recreate the wheel. I searched for a Feedburner stats plugin out there and found a great Feedburner API Wordpress Plugin by Eric Davis.

One minor edit to the plugin was that I wanted to add a thousands separator (”,”). Within the function FB_GetCirculation, I updated the echo statement to add the number formatting I needed:

echo number_format($circ);

Activate the plugin and the next step is to put the stats in your sidebar of your template:

Circulation: <?php FB_GetCirculation($dates = 'last_month'); ?> Subscribers

Next, I’d like to recreate this plugin with Clicky Web Analytics so I can also tout the visitors to my web site, not just the feed subscribers. As well, I think the Feedburner plugin should cache the result - no need in hitting the API all day like it is.

5PM: Full-featured Project Management SaaS

Sunday, March 23rd, 2008

5PM SaaS Project Management SoftwareOne of the challenges with having an out-sourced or offshore development team is simply trying to track and prioritize your work. I work with no less than three outsourced resources, one of them offshore. It seems when you split the workday between time zones, you naturally introduce a delay to everything you do.

I got some press when I canceled Basecamp a year ago. The irony is that, when I signed on with my new job, I was back working in Basecamp again. I’m not knocking Basecamp, it’s a worthy application. I just need something with more robust task and time management. I did then, and I’m finding I still do now. A discussion board with a simple to do list just doesn’t cut it as a project management application.

I don’t know if Sergei Podbereschi and Greg Roy (founders of 5PM Project Management software) ever used Basecamp, but they definitely experienced some of the same issues I find myself in today with their company, QG Software.

So - they put their heads together and developed 5PM. The application was, ironically, developed on two different continents across 5 different languages spoken by the (now) six employees.

After seeing a preview of 5PM, I contacted Sergei. Here’s how 5PM came about:

It was developed as most of the project management solutions - out of need. It was back in 2003 when we started and it was nothing out there that we liked. So we started on our own and called it Project & Team Manager. In fact, that first version was initially developed by me, then we hired additional coders to extend it. 5pm grew from that initial product. It’s all web20, but, as you can see, it’s based on much older ideas. 5pm in fact was a total redesign. Everything changed - from the development platform and interface to the branding. We launched it in November 2007, as SaaS (previous version was downloadable).

I think it takes one look to see how it is different. We did not cut corners when designing the interface. We wanted everything within a click or two and the possibility to customize the interface. It even comes with a Flash Timeline (I don’t know of any project management software that mixes AJAX and Flash together).

5PM Screenshot

We have a bit different approach to the interface and features - we try to make it simple on the surface while packing a lot of power “under the hood”. Also, 5pm is a result of an interesting mix of visions - Greg is an IT manager with 15 years experience, while I’m a younger web designer and developer. Managers like detailed views and reports. Developers hate project management tools, basically. So we tried to design an interface where it’s easy for team members to add messages or close a task with a single click (even through email), while managers have the power to dig deeper.

I also think that we will differentiate more as we add features, using the feedback from our clients. Expect big changes in our Timeline and Reports section in the next months.

I’ve requested our development partners review 5PM immediately. The team was taking a look at Jira, but the interface is honestly confusing the heck out of me. I’m hoping that I get a shot at using 5PM!

Office Space - InitechFor you Office Space buffs out there, you’ll also appreciate the demo. Enough said.

Finally! Most Popular WordPress Plugin Update

Sunday, February 24th, 2008

There are over 200 emails in my inbox relating to the WordPress Contact Form Plugin. Alone, it’s also one of the largest traffic sources of my blog (now you know why I write plugins!).

The post with the most traffic on my site is the WordPress Plugin with Spam Protection post.

Most recently, Corinne of Exile Designs emailed me to let me know that she had converted the plugin to make it tableless - one of the biggest requests on this plugin. I had already started modifying the plugin so you could edit the CSS however you’d like it - so it was time to put it into production!

I read up on quite a few plugins and Corinne provided some tips and tricks as well - and so I present version 3 of the WordPress Contact Form Plugin. This version has quite a few more features:

  • 100% CSS driven (loaded with a default style)
  • Can now be inserted into a template, sidebar, or custom page template.
  • Added a Legend and Fieldset that can also be customized for content and style

Screenshot

WordPress Contact Form Version 3

Corinne has done a beautiful job customizing the style of the contact form on her blog - be sure to check it out and see what’s possible! Please let me know what unique themes you were able to provide! Remember, with CSS you can also hide elements as well (such as the fieldset or legend).

I believe this version handles all of the top requests (the next most popular is to be able to add or remove fields… I’d recommend Formspring for that type of robust interaction).

One issue I have found with the tableless layout is that my blog seems to insert linebreaks where I didn’t expect them. I’d highly recommend adding a Contact Page template and then using that template for a Contact Page.

Additionally, I field a lot of requests that no email is being sent with the form. I’m afraid those issues are out of my hands - the page uses the WordPress mail function.