Make your WordPress blog a real website
Must-have WordPress Edits and Plugins
While WordPress is great blogging software, I find that it (like many blogs out there) lacks some basic features that could make it more usable — that is, what I call a real website. That people can use. Of course, all this is strictly In My Opinion. But hey.
Gotta have menus on all pages:
Uh … I don't even know what to say about this. The WordPress folks, in their wisdom, have seen fit to remove menu links (or the "navbar", if you will) from permalink pages (that's single.php). I fix that right away. Web pages are supposed to have menu links to other pages of the site. End of story.
Turn Category and archive pages into tables of contents: By default, WordPress displays entire posts on what it calls the "archive" pages (category and monthly pages, etc.). That eventually means that those pages will be too long — so, on those pages, WP limits the number of posts to the number you've chosen to display on your home page (who knew that little secret?) and surrounds them with annoying previous/next links to yet more archive pages with a limited number of posts and previous/next links — follow them and you eventually wonder where you are.
This "feature" also means that posts are displayed in full on their respective permalink pages, Category pages, Monthly, Daily and Yearly pages, and maybe on the home page too. Geez, Louise and hello duplicate content! A post should only be displayed on the home page (temporarily) and the permalink page (single.php). And archive pages should simply display a list of titles (with, perhaps, excerpts of the posts). Period.
(1) To turn full-post archives into post title listings: the code for archive.php (which controls all this):
<?php while (have_posts()) : the_post(); ?>
<li id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a> <small>- <?php the_time('m/d/Y') ?></small></li>
<?php endwhile; ?>
If you're hyper about blurbs, stick this in there as well:
<?php the_content() ?>
<?php the_excerpt(); ?>
(2) To display all titles in Category and archive pages: Even if you do the above, WordPress is *still* only going to display a limited number of titles/links on archive pages. Michael Read has saved us from this WP limitation with his most excellent but geekily-named Custom Query String plugin. Download it, upload it, activate it, and customize your settings in the WP control panel — and display all your post titles in their respective Category and other archive pages.
Site Map: Aha. One of the more annoying aspects of most blog software is the inability to get an overview of just what is on the site. At one glance. Not only do I not want to travel around in circles trying to find out what the author has written, but I don't want to poke around from one category to the next. Let's see a site map, yes? For WordPress 2.0.x (and up, I think), we have Aleister's DagonDesigns SiteMap Generator. I wrote about how to implement it here and am using it here.
=> I am terribly sad that Narchives has not yet (to my knowledge) been updated to work with WP2.0.x. Narchives was short for "Nicer Sortable Archives" — a sitemap that allows users to display listings by date, category or title. Very handy. Even for me on my own blogs. <grin> Someone attempted to update it, but I couldn't get it to work properly. I wish for this …
Recent Posts: As a companion to the site map, the WordPress wiki's Recent Posts hack allows you to display a list of your most recent posts on your home page. Far better than an "Earlier Posts" link on the home page … taking you to a page with a limited number of posts and Earlier/Later links and … (anyone see a pattern here?). Just plunk the code into your myhacks.php page and upload it, enable legacy my-hacks.php file support (in Options > Reading), slip a little code into your template, and it'll display links to your most recent posts. It's configurable: if you're displaying five posts on your home page, you can set it to display links to post #6 on, up to the number you specify. Mine's at the bottom of the home page here.
Recent Comments: arrive at your favorite blog wondering if there are ongoing discussions about earlier posts? Brian's Latest Comments plugin from Brian Meidell offers just that functionality. Download it, upload and enable it, create a new page where you'll add a little of Brian's code, and there you are. A link to mine is here.
Removing Nofollow: No fan of nofollow, for the first time in WP2.0.x, I was unable to remove it — but found Dean Edwards' Nofollow Remover Plugin quite excellent. Throw the code into your my-hacks.php file, upload it to your WordPress root, enable legacy my-hacks.php file support (Options > Miscellaneous), and you're done.
Scripty-Goddess' Comment Subscription Manager: this is a good one — someone comments on your blog but has no way of knowing whether more comments were posted afterwards. I don't think people generally spend their time re-visiting posts (or loads of older posts, no matter how interesting) to find out if anyone's replied since their last visit. This is where the illustrious ScriptyGoddess steps in with her WP Subscribe To Comments plugin, which allows commenters to opt to receive email notifications of later comments. Just download it, upload to Plugins and activate, add a little code below your comment box, and there you go.
But wait! There's more! WP Subscribe to Comments also has a comment subscription manager; just create a new page, plunk the code into it, and people can manage their own subscriptions (so you won't have to). Terribly elegant. Here's mine.
ADDED: Mark Jacquith has taken over development of the Subscribe to Comments plugin, which now has even more features (such as the ability to subscribe to a post without commenting). Most excellent; I'll be upgrading.
WP Untexturize: I guess I can be fussy about code; at any rate, Scott Reilly to the rescue with WP Untexturize which I thought I'd throw in here:
Basically, wptexturize() (located in /wp-includes/functions-formatting.php), performs certain character and text replacements that I'm not too groovy with, namely this ( ' ) being replaced with ( ‘ ) or ( ’ ), and ( " ) being replaced with ( “ ) or ( ” ). I appreciate the other character and text replacements that were happening, just not those.
Akismet: if you haven't tried Akismet, then you're probably not blogging with the kind of unpestered-by-spammers calm that you could be.
Well, that's it. I hope this is of help to you all — and, if you've got (or know of) some great plugins, please mention them here!
54 Comments to "Make your WordPress blog a real website"
Have your say ...
First-time comments will be held for moderation (but comments are appreciated). Otherwise, just be courteous. If your name is a bunch of keywords, your comment will be deleted. Don't post links unless highly pertinent. Posters must be 16 or older.