TDO Forum WordPress Theme (v3)

This theme turns your WordPress blog into a Forum!

Download it now!

This graphically simple theme turns your WordPress Blog into a Forum. Categories are treated as individual Forums and a Post (with it’s comments) is treated as a Topic (aka thread). It has a number of powerful features built in such as listing posts on the front page, not by latest date, but by last commented on date. See the full list of features after the cut (or just below).

Version 3 is tested for compatibility with WordPress 2.5 and the display of individual topics is tweaked to be more forum like

Check out the demo or the forums to see it in action!


  • Simple layout easy to modify and customize
  • Lists posts by date of last comment (instead of published date) (included as a page template)
  • Unread topics are highlighted and can be used to filter posts list (included as a page template)
  • A hierarchical Forum list (included as a page template)
  • AJAX Comment Preview (can be turned off)
  • Comment QuickTags (can be turned off)
  • Gravatars for posters and commenter’s (can be turned off)
  • Forum-looking Layout
  • Pages and Categories can be used as Tabs (configurable)
  • RSS 2.0 Feed of forum posts (can optionally be included in the theme or replace the main post RSS feed link)
  • Posts can be made “sticky”
  • Can set different URLs to create posts for different categories
  • Hide categories from the forum list
  • Theme Options page within WordPress Admin UI
  • Custom Posting Template
  • And all for free!


Download the file and unzip the contents to `/path_to_wordpress/wp-content/themes/tdo-forum`. Now login as admin and go to Presentation and select the TDO Forum theme. Once enabled you’ll see a “Theme Options” menu added under presentation. From here you can set the options for the theme (like disabling quicktags and comment previews, gravatars, RSS feeds etc.)


By default, the front page of theme shows three tabs: latest, unread and forums. Theses are provided by default for demonstration. You can turn off these tabs from the Theme Options menu avaliable to admins.

The Theme Options menu allows you to set what categories to not use as Forums in the theme, chose what Pages and/or Forums to use as Tabs and to set a URL for users to post. By default this links to the write menu but this is not avaliable to all users (such as subscribers).

To give you more control of the theme, there are four page templates you can use. To use a page template, create a new page and then select the page template from the sidebar. The four page templates are Forum Index (displays the categories as a hierarchy forum list), Latest Topics (lists posts by their last commented on date), Unread Topics (lists posts unread by the current user) and Submit Topic (allows users to start a new topic). You can then use the Theme Options menu to set them as tabs, in the order you want with any other pages.

I’ve also built-in some support for the paged-comments plugin which displays many comments on separate pages. When you enable this plugin, the original post will only appear on the first page, so that the subsequent pages just show comments. You do not need to have this plugin.

Using the “Submit Topic” Page Template

The Submit Topic Template allows users (including non-registered) users to start a new topic. It picks up settings from the Theme Options and Comment settings. So if you allow only logged in users to comment, only logged in users can start a new topic too.

In it’s default mode, it’ll display a list of forums that the user can select. They can select multiple or single forums. To change this, check page-submit-topic.php and the function tdof_category_select (defined in functions.php). This takes many arguments much like the built in wordpress drop-down category list.

You can also set what category to use in the URL of the page template. Just add "?cat=[id of category]" to the URL (if your using non-fancy permalinks it’ll be “&cat=[id of category]”). For example, if the URL for your submit topic page is:

Then you can tell it to only submit to category with Id 5 by using this URL:

This template does not include preview, moderation, captchas, custom field support, multiple-form configuration, role-based access permissions, easy customisation, etc. For that, I’d recommend my plugin TDO Mini Forms which is explicitly designed to create forms to allow users to post to your WordPress blog.


  • Optimization (SQL queries) and performance (caching) improvements. I’m not sure if this is yet required.
  • Page Template for stand-alone custom posting. My recommendation will always be to use TDO Mini Forms as it’s pretty powerful (moderation queues, widget created forms, multiple forms, tons of options) but it’s good to make the theme totally stand-alone, in need of no plugins.
  • Support “all pages” for tabs (currently you must specific what pages to use)
  • Convert read posts in cookies to userdata when a user logs in
  • Replace contents of WordPress Feed with Latest Feed. This requires a WP hook which is not avaliable and I don’t know if it will be ever.
  • Allow admins to specify categories to include instead of exclude
  • Update QuickTags so that it only supports the allowed tags for comments
  • Favourite/Save Posts for User (might implement this as a seperate plugin)
  • Comment number post thread in RSS feed

Frequently Asked Questions

Where do I get the latest updates on TDO Forum?

Probably the best place is the TDO Forum Tag on my website (the RSS Feed will be avaliable from here).

Where is the best place to get support for this theme?

You can use the my forums, drop a comment on my blog or you can post on’s Support Form

I want the custom posting form to do X?

Forget it. The Custom Posting Page Template is provided as is. If you need special modifications, please check out my TDO Mini Forms plugin. I’m not going to integrate the features of this plugin into the theme. It doesn’t make sense when you can just install the TDO Mini Forms plugin too!

Known Bugs

  • I’ve hacked the_loop to get the theme to work properly. I’m sure this will introduce problems later.
  • Some fiddling with timestamps of posts is not perfect. Sticky Posts have only the date they were made sticky printed on the Latest Topics list, not the last time they were commented on.

Version History

v1: 28 February 2008

  • Initially version of theme with the basic set of features. Does not include a custom posting template and requires further optimization in the backend stuff.

v2: 10 March 2008

  • Added “User Profiles”
  • Added “Custom Posting Page Template”
  • Added “Mark all topics read” button to the “Unread Topics” page template

v3: 08 April 2008

  • WordPress 2.5 compatibility and also uses gravatars from WP2.5 if avaliable
  • Tweaked individual topic layout (user info displayed on left)

Related Posts: