How To Sleep Better After an Upgrade – Blog Unit Testing

Upgrading your blog platform? This guest post from Sid Savara, who writes about personal development and personal productivity is for you.


If you’re a Thesis user (like me) you may have had some issues recently when upgrading to version 1.4. The issues affected a minority of Thesis users, and required reverting to an old version of Thesis for the sites to function while Chris Pearson troubleshot the issue – on his customer’s servers, free of charge. Chris was very responsive and issued a patch the same day (1.4.1), followed by another patch over the weekend (1.4.2). My hat’s off to Chris for providing what can only be called unparalleled customer support in a difficult situation.

This experience brings me to the larger issue – how do you ensure everything on your blog still works after an upgrade? This isn’t the first time I’ve had an issue upgrading – and I’m certainly not the first WordPress user to experience hiccups during the upgrade process either. We all occasionally have issues when we upgrade plugins, install a new plugin or upgrade WordPress itself.

Perhaps the most sinister are those issues where everything looks like it’s working fine. Sometimes after an upgrade I won’t even notice an issue until days later, and I’ll have to go back through my plugins one at a time to see what originally caused the problem.

Until recently, I checked for problems after an upgrade with the old blogger favorite “randomly click around and see if anything looks broken” strategy. The weakness of this strategy is the propensity to miss errors. I decided I needed a way to be more certain that everything went smoothly, and borrowed a couple concepts from my background in software engineering to help: Unit Tests and Regression Testing.

Unit Tests and Regression Testing

Units tests are simple, single function tests done to ensure every part of the software does what it is supposed to. If the test fails, you know exactly where the problem is and can fix it. Likewise, for my blog, each unit test checks for a specific piece of blog functionality.

In software development, a test might work at the time I first run it – but down the road I may change something that causes the test to fail. Repeating the tests whenever any change is made is called regression testing. In my years of software development, I’ve learned that a new change can cause software to react in ways we may not expect. Upgrading a plugin may cause another plugin to fail, or perhaps cause errors in your RSS subscriptions (which happened to me). For this reason, whenever I upgrade or install anything new to my blog, it is important I retest everything, every time – even if the change appears unrelated.

Blog Unit Tests

With that background, here is a handy checklist to review every time you install new plugins or themes, or upgrade any part of your blog. Some tests are especially relevant when installing a new theme, while some should be reviewed carefully in cases of plugin installs and upgrades. Since you won’t know exactly what is affected by each change, it’s important to go through the entire list every time. This list gives you specific checks you can run through in 15-30 minutes and know that your installation is successful. I use WordPress – but this list should apply regardless of your blog or CMS platform.

Note: When running these tests, be sure to force a refresh and clear your browser cache before beginning so you are seeing the current version of your site. If this sounds like Greek to you, here’s a brief explanation of forcing refreshes.

  1. Index page
    1. Title of the page. Is it what you want it to be? Are site name and tag line in the order you desire?
    2. Site name. Is it present? Is it clickable (if you want it to be)?
    3. Description/tag line. Is it present? Is it clickable (if you want it to be)?
    4. Header image. Does clicking on it return you to the home page? Do you want it to?
    5. Favicon. Is your favicon still present? This is a sinister one, as browsers sometimes cache these even if you are forcing a refresh.
    6. Excerpts, Thumbnails and Full Posts. Is the index showing excerpts or full posts the way you want it to? If applicable, are thumbnails and featured posts where they should be?
    7. Post Titles/Permalinks. Does clicking on a post title take you to the blog post?
    8. Comment links. Are the correct comment counts displayed? Does clicking the link take you to the appropriate comment form?
    9. Categories/Tags. Are category and tag links displayed? Do you want them to be?
    10. Meta description. View your page source. Look for <meta name=”description” content=”[…]” />. Is the value in the […] what you expect it to be? See SEO Tips for Blogs for a detailed discussion of why this is important. You may, optionally, want to repeat this test on single post pages.
  2. Index sidebar (s), navigation links and footer
    1. Widget enabled theme. Are all the widgets present?
    2. Widget order. Are the widgets in the order they should be?
    3. Links in widgets the sidebar. Does clicking a link take you where you expect it to? Appropriate pages, external sites, etc? Do the links open in a new window, or the current window?
    4. Site wide navigation (if applicable). Are all the links present? Are they in the order desired? Click a couple. Do the links work? Do the links open in a new window, or the current window?
  3. Archive pages – tags, categories, sitemap, and date based

    1. Index page tests. Repeat all the same tests as the index page. Spot check one category, one tag and one month archive as applicable. If you have a sitemap, check that as well.
  4. Single Post pages
    1. Title bar. Is the post title and site name in the order desired? Does it show everything you want? Post Title, Category, Site Name, Tag Line?
    2. Post Title. Is the post title present? Is it clickable (or not) depending on what you want?
    3. Comment links. Do you want a link to the comment form displayed near the post title? Are the correct comment counts displayed? Does clicking that link take you to the appropriate comment form?
    4. Next/Previous post links. Are they displayed? Before, after, or both? Are they nofollowed or dofollow based on your preference?
    5. Page layout. Are sidebars, navigation links and footer present? Repeat the checks described under #2 above, Index sidebar (s), navigation links and footer .
    6. Categories and tags. Are categories displayed (or hidden) as desired? How about tags? Are they clickable? Are they nofollow or follow based on your preference?
    7. Breadcrumbs. If you have breadcrumbs, are they present and appropriate for the navigation you desire?
    8. Comment and Trackbacks: run through the list below.
  5. Comment and Trackbacks
    1. Comment form. Is your comment form present?
    2. Comments. Are comments displayed? Are the comment counts accurate? Do the gravatars work, if desired?
    3. Trackbacks. Is the trackback link present? Do you want it to be? Are your trackbacks listed?
    4. Test comment. Submit a test comment. Does your comment submit? Is it held in a moderation queue?
    5. Comment subscriptions. Subscribe to comments option
      1. Comment feed. Subscribe to a comment feed – do you see all the comments? When you submit/approve a new comment, does it update?
      2. Subscribe by email. If applicable, try subscribing by email and then submitting another comment – are you notified via email?
  6. Regular pages
    1. Comments on pages. Do you have comments enabled? Do you want them to be? Trackbacks?
    2. Sidebars. Are sidebars present? Do you want them to be?
    3. Page hierarchy. Is the hierarchy displayed the way you want it to be? How about your permalink?
    4. Repeat all the tests for the single post pages.
  7. Images and image links
    1. Images. Navigate to a page or blog post with images hosted on your blog. Do your images load? Check the alt text and title text on the images – are they what you want them to be?
    2. Larger image. Does clicking the image bring up the large version (if applicable)? Is the link nofollow or follow based on your preference?
  8. RSS feed
    1. New post. Publish a test post – does it appear in your feed? (You are subscribed to your own feed, right?)
    2. RSS Link. Double check the RSS link – is it pointing to your feed?
  9. Errors and Redirects
    1. 404 page. Type in an address that does not exist. Review the 404 page. Is it the way you want it to be?
    2. Redirects. Have you redirected posts or pages in the past? Spot check a few. A couple internal posts, a couple internal pages, and a couple external links.
  10. Contact form (if applicable)
    1. Send a test email. Send yourself a test email to ensure your contact form still works. Do you receive the email? Are all the fields present?
    2. Confirmation. Do you see an appropriate confirmation shown to the user on the site after submission? If applicable, is a confirmation email sent to the submitter?

This is only a partial list – but it’s a great starting point. If you have specific plugins installed such as CommentLuv, or various search plugins, be sure to check all of them individually as well. If you have a plugin that generates your sitemap, and you upgrade it – that’s a good time to go and double check that your sitemap page still loads appropriately.

What do you think? What tips do you have for ensuring upgrades go smoothly?

This is a guest post from Sid Savara, who writes about personal development and personal productivity at If you’re struggling to get through everything in your RSS reader and inbox, you should definitely click through to learn How to Effectively Read 12,853 Articles, Forum Topics & Blog Posts a Week.

How to ReDesign a Blog [Part II]

This post is the 2nd in a two part series in which Matt Brett shares how he approached redesigning Digital Photography School. Read Part 1 Here.


When it came to developing the new Digital Photography School, the real challenge was brought to the table. How was I going to house three blogs under one roof? There were many routes I could take, but I narrowed it down to two pretty early on…

1. Use WordPress MU to host the different blogs under a single install. b5media is in the process of moving all their blogs to the MU platform, so it made sense to be ahead of the curve with DPS already being on it. Tying the blogs together on the homepage and cross-promoting in the sidebar would be easily handled by parsing feeds via SimplePie.

Including all three blogs in archive indexes, search results, etc. would have been made a little more tricky. There are several down-sides to going this route, though, which falls mostly on the administrator’s lap in the end. Adding extra steps to Darren’s daily routine is something I wanted to avoid, so I started weighing pros and cons.

2. The simpler option on all fronts, was to use a standalone install of WordPress and “fake” the different blogs by using a well structured category hierarchy. I knew this meant I was going to be writing a ridiculous amount of conditional statements in the templates, but it would ease the load on the content management end significantly.

Option 2 was the route I decided to take, which proved to be the right one in the end. Aside from producing lists of popular posts in each category (or in this case, for each blog), everything else was relatively easy to do.

Before I could start building out templates, the categories needed to be re-arranged and sorted accordingly under three main ones. “Cameras and Equipment”, along with “Post Production” already existed. So I merely had to create a new category for “Photography Tips and Tutorials”, then place all other categories under it. With that done, I now had the main three categories in place and started separating them on the front end usingconditional tags and custom loops with query_posts.

If This, Do That

Constructing the sidebar was quite a feat. It took a fair amount of planning and testing to ensure the correct content was being displayed for the page you were looking at. The idea, was to show the most popular and recent posts for the blog you’re reading at the top of the sidebar, followed by most recent posts from the other blogs. This became complicated when we started adding additional pages to each faux blog, along with the posts they already contained.

There’s a single template for the sidebar which houses the content for each blog. The conditional tags tell it which content to display depending on what post or page you’re reading. For content relating to the Photography Tips and Tutorials blog, the conditional statement looks like this…

<?php if(in_category(51) && is_single() || is_subcategory(51) && is_single() || is_page(2694) || is_page(2745) || is_page(2753)) { ?>

What that means in plain English, is this…

“If we’re in category 51 and reading a single post, or in a subcategory of 51 and reading a single post, or reading page 2694, or reading page 2745, or reading page 2753, show this content.”

Similar steps are taken for the other blogs, but obviously the category, post, and page IDs change.

Visually Identifying Content

One of the pros of using a single installation of WordPress and “faking” the blogs, was the ability to use the standard archive indexes. Categories, tags, authors, search results, etc. This was all well and good, but we needed a way to distinguish posts being from different blogs. To do this, I coloured the post title and corresponding links to match that of the blog the post belongs to. For example, if you were to look at

Darren’s archive index, you will notice that posts colours change as you scroll down the page. The same goes for search results, which assume a nearly identical layout.

This effect was easily accomplished using a conditional tag which assigned the appropriate class to the post’s container div depending on the category or subcategory it belongs to.

<div class=”post archive<?php if (in_category(51) || is_subcategory(51)) { echo ‘ tips’; } else if (in_category(10) || is_subcategory(10)) { echo ‘ cameras’; } else if (in_category(8) || is_subcategory(8)) { echo ‘ production’; } ?>”>

Presenting the Right Content

Inside each conditional statement is a custom loop which produces the appropriate content for the given area. Again, using the Photography Tips and Tutorials blog as an example, the sidebar list of recent posts i constructed using the following query_posts…

<?php $recent_tips = new WP_Query(‘cat=51&showposts=5’); ?> <?php while ($recent_tips->have_posts()) : $recent_tips->the_post(); $more = 0; ?> This one is probably a little easier to decipher – show 5 posts from category 51.

Popular posts from each category was another issue all together. There’s no built-in function in WordPress for popular posts, which is still a little baffling. Over the years, there have been changes to how posts are stored in the database, and popular post plugins never seemed to be able to keep up. Doing a quick search will return several results for such plugins, but hardly any of them work with newer versions of WordPress. Of those that do work, none of them did what I needed – produce a list of popular posts for specified categories. That was until I found the brand new, Recently Popular plugin. At the time I stumbled upon it, the functionality I was after wasn’t quite there. But after leaving a comment with my request, the author released a new version within days adding exactly the functionality I desired. Perfect!

Making Content Management Easy


When it came to the handling the sidebar content, I wasn’t quite sure how I was going to approach it. In the past, I’ve done such things as creating a series of pages that make up the different bits of sidebar content. Utilizing the page title and content areas, along with some custom fields. But this was by no means an elegant solution. I was after a solution that was easily comprehensible and simple to use. That’s when I turned to widgets.

I’ve created custom widgets before, but their purpose was merely to give my client the ability to rearrange content form the WP-admin. This time, I wanted Darren to be able to edit the content of each widget from within WP-admin as well as being able to rearrange.

A quick search landed me on this tutorial from WooThemes (registration required to read), which was exactly what I needed. In no time, I had created a set of custom DPS widgets with customizable content.

Similarly, a couple new elements have been added to posts that needed an easy-to-use interface. I started demo’ing plugins that allowed for creating user interface elements that tied into custom fields. Unfortunately, most are now geared towards WordPress 2.7, and DPS is running 2.6.5 for the time being. I ended up finding another great tutorial which demonstrated how to create custom write panels in WordPress.


Be Dynamic

Using conditional tags and custom loops via query_posts, you can fairly easy create dynamic content which will help set your blog/site apart. A static sidebar with identical content on every page loses its impact quickly, while one that changes and relates to the content of the post you’re reading will not only catch the reader’s eye as it’s constantly changing, but also serves as a more valuable gateway to connect them to other related content.

How to Redesign a Blog: Redesigning DPS

In this post (the first of two) Web Designer Matt Brett shares some reflections and tips from the process of redesigning my Digital Photography School blog.

When I was approached by Darren to take on the task of not only redesigning, but expanding his Digital Photography Schoolblog, I was thrilled and a little intimidated. I knew it was going to be a massive undertaking on all fronts. With DPS being one of Darren’s largest projects and with it having such a huge following, the pressure was on to deliver a top notch redesign.


Setting Our Course

Most projects I take on are personal blogs, or brand new sites. Neither of which require a whole lot of planning up front. DPS was different in that it is well established and chalk full of content. Before we settled on a timeline, I thoroughly assessed every step of the project and created an outline that spanned a total of 5 weeks.

  • Phase 1 – Design (7 days)
  • Phase 2 – XHTML/CSS Templates (3 days)
  • Phase 3 – WordPress Development (7-10 days)
  • Phase 4 – Forum Integration (3 days)
  • Phase 5 – Finishing Touches (2 days)

The WordPress Development phase ended up taking a bit longer than anticipated, as we managed to sneak in some new features along the way. Which in turn cut down the amount of time allotted for the forum integration. At the end of it, I had to put in a bit of extra time to tidy up some display bugs (primarily with different versions of Internet Explorer, of course). But overall, we managed to stick pretty closely to the schedule and consider the launch of the new site a success.

It’s All About Structure

One of the most important and underappreciated steps in designing or redesigning any website, is coming up with a solid structure (or layout). Most people call this the wireframing stage, which has been part of my regular routine for years now. Spending a day or two to really flesh out just how you’re going to lay things out not only makes it easier for the client to get a clear picture of where things are headed, but also eases the amount of revisions in the design phase. It’s much easier to move things around and make significant changes when you’re dealing with flat boxes and placeholders.

Before the end of my second day on the project, I delivered a wireframe for the article layout which basically looks like a stripped down version of the final design. After a couple revisions, I took the wireframe and started playing with colours and styles (click image for enlarged view).


Design Direction

It’s always nice when a client gives you free reign to try new things when it comes to design. Darren really didn’t give me a lot of direction in this department, other than to see he wanted something that looked more professional and one of the main goals was to increase usability and readability.

I spent some time checking out the current trends via design showcases, and determined which routes I didn’t want to take. I also peaked around at other photography and camera equipment sites to see what related others in the same field were doing. There seemed to be a lot of stark contrast – typically, sites would be on a solid which background with one dominant colour. Similar to the previous version of DPS which was blue and white.

First on the not-to-do list, was “Don’t use white, anywhere.” With the exception highlights in some of the icons, I stuck to that. Using off-white and beige in place of #fff. It didn’t take long before I started working with some rich browns, and almost gold tones. While this normally wouldn’t be my first choice for a colour scheme, I felt with it being completely different from the previous design and out of the ordinary for this type of site, it might be just what we need for a fresh, new feel.

When Darren mentioned he wanted to split the site up into 3 separate blogs, I immediately thought of doing a unique dominant colour for each. Since “Photography Tips & Tutorials” was basically the catch-all blog and closely resembled what the previous version of DPS was, it made sense to go with blue. From there, I simply went through my colour pallete and chose some other colours that worked well with the rest of the site. Green was a no-brainer, and I wanted to use red for the “Post Production” blog. The problem there, was that it ended up being closer to pink than red, which Darren wasn’t thrilled about. When toned down to more closely match the blues and greens, we ended up with a very muddled red which is closer to brown, but still works (click image for enlarged view).


The rest of the aesthetics came together pretty easily. I decided there would be no high gloss or “wet floor” type effects. And instead opted for soft gradients which brought a warm feeling to the site that the stark contrast of the previous version lacked.

On Thursday Matt will continue to reflect upon the redesign of DPS. Stay tuned to ProBlogger’s RSS feed for the 2nd part.

Use Gravatars to Add Personality to Your Blog

In this post Jack Gamble from Babeled sheds some light on a handy service – Gravatars which is a tool that many people are adding to their blogs (I’ve got it operating in the comments section of both TwiTip and Digital Photography School at present).

An important thing to remember as you develop your blog is to build an identity that distinguishes you and your site from the rest of the blogosphere. One tool that can help to accomplish this is the use of Gravatars.

Gravatar is the abbreviation of the phrase “Globally Recognized Avatar.” In short, it is a small image, normally a head shot, of the author or commenter. The Gravatar you chose will be tied to your email address; therefore any enabled site will automatically feature your image next to your comment.

The sense of sight is relied on more so than any other. In a text dominated world, it is difficult to quickly establish an identity with readers in the short time most people will spend on any page of your blog. Think of a newspaper in the editorial column where popular columnists will feature a small photo of themselves next to their articles. This allows the readers to quickly put a face on the writer.

Choose your Gravatar carefully. Don’t pick just any picture. Make use of an image that lends itself to your blog’s identity.

Let’s look at two writers over at Babeled.

gravatar-1.jpgThe first is yours truly. I write under the pen name “Man Overboard.” This name was derived from my former job as a commercial fisherman and it is also a play on words that hints at my tendency to overreact to certain issues.

As you can see, the Gravatar I have chosen shows my ugly mug through a port hole on my old boat making a face that says “don’t take me too seriously.” This small image next to a comment or blog post immediately tells the reader more about me than a full page of text ever could. Above all, it does this while occupying only a very small amount of valuable space.

-2.jpgNext is our very own Cartoonist who goes by the name Keeks. Take one look at his Gravatar, a cartoon self-portrait, and you know everything you need to know about this guy and his obvious sense of humor.

Another reoccurring piece of advice you will commonly receive at ProBlogger is to frequently comment on other blogs. Most sites require you to enter your email and URL to comment. The Gravatar you chose will be tied to your email address, so any enabled site will recognize you and hence your Gravatar image will automatically appear next to your comment. Again, the Gravatar will help to identify you as a face with a personality (and more importantly a blog) of your own. As you make your way throughout the internet, the chances that your Gravatar becomes noticed increases with each comment.

Also, by placing the same picture on your profile at various social media outlets you will increase its visibility and effectiveness. Be sure to use the same profile image for Mixx, Stumble Upon, Reddit, Facebook, and any other social networking tool you employ. Each time you display the image it becomes product placement for your blogging identity.

Gravatars become even more important for multi-author blogs. At Babeled, I am one of many regular writers. My Gravatar, and that of my coauthors, is a useful tool that allows our readers to quickly distinguish between the many personalities that contribute to our various topics. As the comments develop, the Gravatars create the impression of watching a dialogue between two easily identified writers with different points of view.

If you don’t already, I encourage you to enable Gravatars on your site and start using them immediately. You will find this practice very helpful as you strive to separate yourself and your site from the endless sea of bloggers on the internet today.

~Man Overboard

Digital Photography School just got a New Design

Digital Photography SchoolBlog redesigns are always experiences that are mixed with excitement and a little fear – today has been a day for both of those feelings as we launched a new design for Digital Photography School.

The new design includes an expansion from 1 blog to 3, a new portal/aggregation front page, Gravatars in comments and a lot more.

I won’t fully outline it here right now because I’ve asked the designer – Matt Brett (who has been a pleasure to work with) – if he’ll write a post for ProBlogger about it – but you can read my introduction to some of the changes on DPS in a post here.

Thesis WordPress Theme – 20% off Black Friday Sale Now On

If you’re looking to upgrade the design of your blog and are interested in a premium blog design then Thesis is a theme that theme that today you can get a pretty good special price on.

For the first 150 people to take up the offer there’s a 20% discount – IF you use this code in the signup process – 20D03977D0.

update: this has been extended beyond the first 150 people due to large demand. The discount runs out at the end of the day on Friday.

This means that the personal license is $69.60, the developer license (unlimited use of the theme on multiple blogs) is $131.20 and the developer upgrade (if you already have a personal license) is $61.60.

I’ve been using the Thesis theme over at TwiTip and while I’d previously giving it a pretty positive review I am now an even bigger fan. The configurability of this theme is really great. It allows you to set it up in many different formats and by default is configured well for SEO (I started getting search traffic within days).

I’m also pretty impressed by the way that Chris Pearson has been developing the theme over time (it’s up to version 1.3 and 1.4 is coming soon – you get all the upgrades for free) and by the forums that you get access to as a theme owner (I’ve found a few great ideas there).

This price is only available to those using this promotional code – 20D03977D0. Get your theme at the Thesis Page.

How I added the Twitter ID field to comments on

A couple of days ago I added the ability for those leaving comments on my TwiTip Twitter Tips blog to add their Twitter ID as well as their URL to comments. Since doing this I’ve been asked time and time again how we did it. In this guest post Sean Walberg (the guy who actually made it happen and who is my server admin on TwiTip) explains how he did it.

If you’ve been to in the past couple of days, you’ve probably noticed that commenters have Twitter IDs in their posts:

Picture 1.png

This was something Darren thought up while we were preparing to move his server, and asked me to put it in place. Twitip runs on WordPress, which is easily extended through plugins. Fortunately, someone wrote a plugin to take care of most of what’s needed to do this.

The steps we’ll follow here are:

  1. Get the plugin and activate it
  2. Configure the plugin for the new Twitter ID field
  3. Modify your theme to capture the information in your comment form
  4. Modify your theme to print the Twitter ID in the displayed comments

The first thing you’ll need is the Extra Comment Fields plugin. I used Version 1.2 Beta if you want a direct download link.

There’s one PHP file in there that you’ll put in your wp-content/plugins/ directory. When you go back to your WordPress Admin page, you’ll see the Extra Comment Fields plugin in the Inactive Plugins section of your Plugins page (off to the right of your screen, between Settings and Users). Activate this plugin.

The Extra Comment Fields plugin is tricky in that there are several references to the field name, and they all have to match (including the case). I chose “twitter” which should be easy enough to remember.

From the WordPress Admin screen, navigate to Settings, then Extra Comment Fields. (If you don’t see Extra Comment Fields in the list of plugins, go back a step and make sure you activated it)

Type “twitter” into the text box and click “Add Field”. Your screen should look like this:


This step makes the necessary changes to the database to store the comment. Heed the warning you see, if you delete this field, it removes the column in the database.

Next, go into your theme directory, it’s in wp-content/themes/. Darren runs Thesis, so we’re looking at wp-content/themes/thesis. Open up comments.php. Find the spot where the comment form is displayed by looking for comment_author_url.

You’ll want to add a new comment field with the name of “twitter”. This will depend a lot on your theme, but cutting and pasting goes a long way here. The big change, though, is that WordPress doesn’t keep this value in your cookie, so you can’t pre-populate this in the value attribute (in simpler terms, people who have commented before will have their name, email, and URL filled in, but not the Twitter ID). In Thesis, you’ll have:

                        else { // Otherwise, give your name to the doorman
                                        <p><input class="text_input" type="text" name="author" id="author" value="<?php echo $comment_author; ?
>" tabindex="1" /><label for="author"><?php _e('Name', 'thesis'); ?></label></p>

                                        <p><input class="text_input" type="text" name="email" id="email" value="<?php echo $comment_author_emai
l; ?>" tabindex="2" /><label for="email"><?php _e('E-mail', 'thesis'); ?></label></p>
                                        <p><input class="text_input" type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>"
 tabindex="3" /><label for="url"><?php _e('Website', 'thesis'); ?></label></p>

                                        <p><input class="text_input" type="text" name="twitter" id="twitter" value="" tabindex="4" /><label for
="twitter"><?php _e('Twitter id', 'thesis'); ?></label></p>

In the default theme, it’ll look like this:

<?php else : ?>

<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />

<label for="author"><small>Name <?php if ($req) echo "(required)"; ?></small></label></p>

<p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />

<label for="email"><small>Mail (will not be published) <?php if ($req) echo "(required)"; ?></small></label></p>

<p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small>Website</small></label></p>

<p><input type="text" name="twitter" id="twitter" size="22" tabindex="4" />
<label for="twitter"><small>Twitter ID</small></label></p>

<?php endif; ?>

At this point load your site in your browser to make sure everything looks OK.

The last step is to print the Twitter ID alongside the comments. This is also done in comments.php. The comments are printed out in a loop which varies from theme to theme. In Thesis, you’ll start right after:


(It’s entirely possible there’s an easier way to do this in Thesis)

In the default theme, you’ll see the following, and you’ll want to start right before it.

                        <?php comment_text() ?>

Wherever you end up starting, insert the following code:

<?php if ($comment->extra_twitter) {
// Strip out the @ if they put it there because we're going to need to get rid of it for the url anyway
$extra_twitter = preg_replace("/^@/", "", $comment->extra_twitter);
$extra_twitter = htmlentities($extra_twitter); ?>
<a href="<?=$extra_twitter ?>">@<?=$extra_twitter?></a>

<?php } // extra_twitter ?>

The Extra Comment Fields plugin puts the data from the twitter field in a method of the $comment object called extra_twitter (and if you called your variable foo, it would be called extra_foo, and so forth). The above code checks to see if it’s been set (that is, someone submitted a Twitter ID), and if so, strips off any leading “@”. This allows people to enter their Twitter IDs both with and without the @. The code then calls the htmlentities function to strip out any funny stuff, and then print it out as a link. If you want to style the link with any CSS, change the HTML accordingly.

That’s it!

Sean Walberg is a network guy, freelance author, and systems administrator.

How to Increase Subscribers and Reader Engagement

Last week I decided to find some quality Australian blogs to subscribe to. I used a newly compiled list of Australian Marketing Blogs that Julian Cole put together as the basis for my search.

I was excited by the quality of some of the blogs on that list – but it struck me as I surfed through the list that there were three frustrations that I had with quite a few of the blogs on the list (definitely not all of them, but enough for me to notice).

None of these problems are issues that just Australian bloggers or Marketing bloggers face – I see them every day around the web (although I did find it ironic that a list of ‘Marketing’ blogs would have some of these problems).

1. Hidden Subscription Options

I was on a mission to subscribe to great blogs – but one disappointing thing that I noticed was that quite a few of the bloggers didn’t make this easy for me simply because they ‘hid’ their subscription methods way down the page (and a couple didn’t even show them at all). Most browsers these days give those who use them the ability to subscribe by clicking the RSS icon in their address bar – but many web users don’t know that they can do this (or are using old browsers).

If one of your goals as a blogger is to grow your readership then one great way to capture first time readers is to get them to subscribe (whether that be to an RSS feed, an RSS to Email service or a newsletter. If you hide or obscure these options you’re not likely to get the conversions.

My own approach with getting subscribers is to place these subscription options prominently in a sidebar and then under posts on single post pages (usually below the fold). This means that whether a new reader is above or below the fold they are invited to subscribe.

Further Reading11 Ways to Get New RSS Subscribers for your Blog

2. No Way to Contact the Blogger

There were a number of blogs on the list that I was really impressed with – so much so that I wanted to contact the blogger and congratulate them on their blogs. The only problem was that on a couple of occasions I found it difficult to find any way to contact the blogger other than to leave a public comment.

I understand some bloggers desires to have privacy or to cut down the admin of their blogs by keeping themselves difficult to contact but in doing so you not only filter the loonies approaches but also legitimate opportunities, potential partnerships etc

Contact options don’t necessarily have to be giving out your email address – you could have a contact form, give Twitter details, have an IM option or give other social networking profiles (the key is to give ones that you actually check).

Further ReadingWhy Your Blog’s Readers Should be Able to Contact You

3. No About Page

This one is probably more my personal preference and less essential than the first two points – but when I find a blog that I’m interested in one of the first things that I like to do to help me decide whether to subscribe to it is to search for more information about the blog and who writes it.

Some kind of an ‘About Page’ is a great way to satisfy and draw in curious potential readers (like me) and to deepen the connection with them.

Your About page is a wonderful opportunity to make a connection with new people to your blog, to sell yourself and give reasons why people should read you.

You can of course do this in other ways (an intro in your sidebar perhaps) but a page dedicated to sharing your information in this way can really work well.

Further Reading – Add an About Page to Your Blog, How to Write Your “About Me” Page and Conduct an About Page Audit

How to Polish Posts: Individual Blog Post Design

Much is written about how to ‘design blogs’ (as a whole) but another element of ‘blog design’ that I think is just as important, yet not written about much, is the design of individual blog posts.

How blog posts ‘look’ is so important. I’ve seen the power of ‘polishing’ posts time and time again.

Polish-Blog-PostsImage by Darwin Bell

I still remember the time that I took one of my early posts on my Digital Photography blog and polished it up. The original version of the post was largely text. It had one image in it but it was fairly bland and was more there to illustrate a point than anything.

The content remained almost identical – but I added 5 images to the post (images that still illustrated the point but eye catching ones), added sub headings to each paragraph and reformatted one section into a ‘list’ rather than just a block of text.

I then republished the post at the top of my blog as new.

The result was amazing!

The next day the post had 50+ comments, was on the front page of Digg and it was being linked to by blogs everywhere. The old version had received 2 comments and had previously gone largely unnoticed.

This is the power of paying attention to how your blog posts look.

Why Polishing Blog Posts Works

There are a number of important reasons why polishing blog posts is worth putting a little extra time into:

  • First impressions – in the same way that your overall blog design conveys messages to readers about what your blog is about and whether they should subscribe – the formatting and design of single posts says a lot about you to first time visitors.
  • Grabbing Attention – loyal readers may rarely visit your actual blog if they follow it via RSS so one might not think post design matters – but in actual fact post design has a massive impact in the realm of RSS where there is little to set your posts apart from others. A good picture or clever use of formatting can really grab the attention of someone scanning through their feeds.
  • Reinforce Content – visuals in a post can reinforce points that you’re using within content. Illustrative images, video, charts, graphs, tables etc – all will connect with visual readers in a way that text cannot.
  • Connect with Web Reading Habits – most web users don’t ‘read’ content word for word. They scan content, looking for elements of web pages that draw their eye and for keywords that connect with what they are interested in. As a result the way you design your posts can be the difference between someone actually ‘reading’ your post or just glossing over it.

How to Polish Blog Posts:

Following are a number of areas that I consider when polishing blog posts. I’d love to hear your thoughts on what you’d add to the list – I’m sure there are plenty more.

  • Images – images on posts are gold! They draw the eye and grab attention, they illustrate points, they inspire, they engage the imagination and they connect with visual learners. In a largely text based medium – the use of good image can set a blog post apart from the crowd – learn to use them!
  • Charts and Diagrams – similarly, good charts, graphs and diagrams add depth to content and give posts a visual point of interest.
  • Formatting – one of the big mistakes that I see guest posters submitting posts to me making is that their posts come to me largely as large slabs of uninteresting looking text. Most people don’t ‘read’ content online – they ‘scan’ it. As a result you need to work hard to break up your text and draw attention to important points. Using lists is one way of doing this, as is using bold, italics, font size and color, blockquotes and other formatting techniques.
  • Sub Headings – I am a fan of sub headings – rarely a post goes by that I don’t put <h3> tags around some important part of my post to draw the eye, start a new section or break up a slab of text. One quick tip I’d give on sub headings is to think about them in similar ways to ‘post titles’. The purpose of a subheading is to get people to read the text under it – so ‘craft’ sub headings using some of the same techniques as we mentioned in our post on crafting titles.
  • White Space – a simple line break or a little extra space around an image can have a big impact upon how your post looks. Let your content breathe.
  • Short Paragraphs – one edit that I often make with posts submitted by others on my blogs is to break up paragraphs into shorter ones. This makes posts seem less overwhelming and more achievable for readers to read.
  • Break Posts Up – at times after writing a post it becomes clear that you’ve written something that is simply too long or covers too much territory. Rather than publishing it – breaking it down into a couple of smaller posts can do wonders for how the post looks to readers. Many readers would much rather read two single posts that are more focused than a longer rambling one that covers too much ground. This is actually what I’ve done with this very post – originally it was the 2nd half of my post on Quality Control but I realized that while related, the topics were perhaps a little too different to cover in the one post.
  • Highlight and Reinforce Main Points – pay attention to using some of the above techniques when it comes to your main point and call to action. If your post is a long one – it can actually be useful to repeat your main point numerous times within your post (in the introduction, main body of the post and then as a closing sentence).

What would you add to this list of ‘post design tips’? How do you ‘polish’ your posts to maximize their impact?

Further Reading on Quality Control and Polishing Your Blog Posts:

Read the Full Series

This post is part of a series on how to craft blog posts. It will be all the more powerful if taken in context of the full series which looks at 10 points in the posting process to pause and put extra effort. Start reading this series here.