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:

Replace this:
<?php the_content() ?>
with this:
<?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 ( &#8216; ) or ( &#8217 ), and ( " ) being replaced with ( &#8220; ) or ( &#8221; ). I appreciate the other character and text replacements that were happening, just not those.

Alternate Font Sizes: I haven't tried this one yet, but just read fernando_graphicos' (he of the wonderful graphic design talent and ever-dwindling font sizes) Easy Javascript Text Resizing. Nice. Easy to understand.

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"

  1. Tamar Weinberg says:

    Great post, Diane! There are a lot of things you mention here that I've never heard of.

  2. Corey Stroeder says:

    Those are some great tips! I can put some of those to use for some future clients.

  3. Diane Vigil says:

    Well, thanks you two! It took me quite a while to compile this little list — and some I've been using since WordPress 1.2.2 but they (or their updated brothers) work with WP2.0.x (haven't gone to 2.x yet).

    Glad you found it helpful.

  4. Lou D says:

    Super useful, thanks!

  5. Diane Vigil says:

    Excellent, Lou. I'm hoping that it helps people to flesh out their blog functionality.

  6. rcjordan says:

    Thanks, Diane. We'll definitely be using your tips on the upcoming SME real estate(ish) blog.

  7. Diane Vigil says:

    Glad to be of help. And, I'm honored by your presence. :)

  8. Cleaning up WordPress Archives | ChillyCool Web Digger says:

    […] Developed Traffic has the answer.   I'm going to break it down into even smaller steps. […]

  9. Philip M. McDonnell says:

    Hey Diane,

    Do you have any other tips for someone who wants to use WordPress as a content management system for a website? I heard of making a static home page by using a slug of home or something, but what else is there?

    How would you make many pages of content that are static but not show up on the menu necessarily?

    Thanks for all your great info and points in this article.


  10. Diane Vigil says:

    Phil, I haven't tried that yet, although I've been meaning to test it.

    I thought I'd check the WordPress Codex, and found this:

    Known as a static front page or splash page, this is the first page seen by users entering your site. Unlike a traditional WordPress front page, featuring the WordPress Loop which generates a list of your most recent posts, the static front page is a customized page that lacks The Loop and displays static information that can either invite people to "click through" to the real good stuff or offer highlighted post or article features and information that direct users to different areas of your WordPress site. It can have static information and links that do not change, or it can incorporate some automatically changing information.

    This page contains a technique that requires editing several files. There's a different, shorter technique to get a static front page while maintaining a separate blog area, that is based on WordPress's static pages, and another one that works entirely with template files.

    I'm not too crazy about the "splash page" idea, which is normally defined as an entry-only page. I can't tell from the Codex page whether you can edit the home page in WordPress, though. Can you?

  11. links for 2007-04-05 says:

    […] » Make your WordPress blog a real website » developedtraffic.com 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 (tags: wordpress plugin tips) […]

  12. Timberland says:

    It was very useful. Thanks for the tutorial Diane.

  13. Diane Vigil says:

    You're very welcome. I'm glad it's helping some people.

  14. DazzlinDonna says:

    Very nice article. Why haven't I stumbled across this blog before now? Off to read more of it and then probably subscribe too. :)

  15. » A little site addition » SEO News - All The SEO Scoop says:

    […] All of this is via a cool Subscribe to Comments WordPress plugin that I found today. How did I find this nifty little plugin? Well, do let me tell you, as I think it's a great way to illustrate the often circuitous route that we take as we surf the net. And just how useful a link can be. First I discovered on the Cre8asite Forums that DianeV has an interesting blog, and while reading that particular post, I traveled over to the ScriptyGoddess plugin page. If I hadn't scrolled down to the bottom of the comments, I wouldn't have known that there is an updated version of this plugin, so I rambled over to first this link, and then from there to the official place to get the newest version of the plugin. […]

  16. Diane Vigil says:

    Hi Donna. Actually, I've been slightly missing in action for the past months.

    Mainly, I've been busy, but also because I've been "thinking" (LOL) … but now that I'm done "thinking" and that whatever I've been "thinking" about has been resolved in my mind, I should be around more often.

    Good to "meet" you at last. :)

  17. Boston Condo Guy says:

    Thanks for the post. Love the Recent Posts plugin (which we are using as a widget), and we will look at the sitemap plugin you mention. Thank you.

  18. Diane Vigil says:

    You're welcome, Boston. I was hoping that this post would be helpful. :)

  19. Gab says:

    Hi. nice work but i'm a php idiot. mind if you explain how to turn full-post archives into post title listings?

    Which of the code for archive.php should i replace with the below?

    ">" rel="bookmark" title="Permanent Link to ">

    this website tries to summarise your work

    he was saying i can make my own archive page by copying the code from index? mind if u elaborate how?
    my theme already has a archive page tho.

  20. Gab says:

    sorry the code can't be seen in your comments. The code i'm refering to is the first code in your post

  21. Diane Vigil says:

    Ah, I see. Well, let's not work more than we need to! Just copy the archive.php from one of the default themes that comes with WordPress — copy it into your new theme folder. Then replace this:

    <?php the_content() ?>
    with this:
    <?php the_excerpt(); ?>

    What that does is replaces the full post (the_content) with an excerpt from the post (the_excerpt). That should do it for you; just upload it and try it out.

  22. Nick says:

    Hi Diane, lots of good tips here. My little brother has been trying to make my wordpress site look like a real website for a little while now. Tricky but it can be done. We still have a lot to do its http://www.playcover.com.au .Can you recommend any other (good)ones?

  23. Diane Vigil says:

    The website looks terrific! Not sure what you're looking for, Nick — can you explain?

  24. Philip M. McDonnell says:


    I love the site you did, could you explain how you made it work the way it does? I love the way you have the subsection links on the left under the main menu categories…


  25. GilbertZ says:


    Nice list. It is helping me set up my blog in wordpress. But Custom Query String plugin is no longer supported. Any guidance?

  26. Diane Vigil says:

    Hm. It works for WP 2.0.10 … sounds like it's not supported for 2.2 (or whatever is the latest version of that … version). That's too bad. I'd contact the plugin author.

  27. GilbertZ says:

    Oh wait, I just realized, he had a link to the zip file, it just isn't supported. I will try it out…

  28. Duane Forrester says:

    Just wanted to say this was an excellent overview Diane. Some truly great and handy ideas. Enough so that I think I'm going to implement most of them on my own blogs. :)

    Nice work – I believe I'll come back to read again.



  29. GilbertZ says:

    Glad you posted and this comment was sent to me. I meant to subscribe to the feed and couldn't remember the URL. Yes, it's great work!

  30. Diane Vigil says:

    Thanks, guys. I did spend some time on it, as I thought the information would be useful.

    I remember stumbling upon blogs years ago; couldn't tell where I was in the site, or anything else, so it was much too confusing.

    Anyway, glad you liked it.

  31. GilbertZ says:

    Diane, do you know how to make an author list, with a link to all the stories by that author? And the number of posts by that author? Also, How do you make a link to write a new post direct from the blog? I bookmarked the admin panel, but I have multiple authors and they are confused as to how to start a post. I like the way there is a "wp_loginout" feature, but is there a way to offer a "write new post" link that only appears if the user is an official author of the site?

  32. GilbertZ says:

    […] Viapath: DevelopedTraffic > ScriptyGoddess Filed under WordPress, Site Maintenance by GilbertZ […]

  33. Diane Vigil says:

    Okay, Gilbert; I had updated my post with the directions for making the author page, but decided it was better if I moved it to it's own page: WordPress Author Pages.

    As to your writers, they'll need to post articles via WordPress — just like you do — and they'll have to log in to do so. Bear in mind that the Login link changes to "username/logout" if you're logged in.

    Once they log in, they go to
    > Write > Write Post

    If you want to change what that links says, you'll probably have to hack the WordPress code.

  34. GilbertZ says:

    Thanks Diane. The sidebar doesn't say > Write > Write Post though…

  35. Diane Vigil says:

    Correct. I don't really know of any easy way to move the entire admin panel for writing posts onto the sidebar without some heavy modification of core WordPress files; nor is the sidebar for most blogs wide enough to accommodate it.

    But it's simple enough to give them access, which WordPress is already set up to do. Have them use the Login link on the sidebar to log in to WordPress.

    That should take them into the internal WordPress admin panel (which will display according to the level you assign to them in Options > Users). There, they will see the Write tab; click on that and then they can choose the Write Post tab to write their posts.

  36. ChillyCool Web Digger says:

    […] Developed Traffic's solution for better archives. My post goes into a bit more detail, especially on using the Custom Query String plugin […]

  37. Natalie says:

    Wow, am I glad I dropped by your (organics) website! I have been talking about a bunch of this stuff with my WP blog installer, and these ideas (many of which I'd asked her about but she didn't know how to do) are among the things I'm looking at (although our blog site isn't our main – commercial – site, we want to turn it into a more full-fledged SNS (social networking site) over time), and I'll send her this way to check out some of your ideas.

  38. Diane Vigil says:

    What a surprise! :) Glad to see you here, and I'm happy that my post is of help to you.

  39. Jen says:

    This really helped me a lot…thanks for posting this information!

  40. Diane Vigil says:

    You're very welcome, Jen. Glad it was of help.

  41. San Diego Insider says:

    I am amazed at how many don't see the full potential of WordPress. I suppose once something gets labeled as "blog", it gets pigeonholed.

    We are using WP for business stuff where in some niches, looking like a blog can hurt.

  42. Diane Vigil says:

    I suspect you're right, San Diego Insider. And WordPress is easily customizable (although whether it's actually "easy" depends on your knowledge). Good point.

  43. My First Encounter with Wordpress… « Weird Knowledge Weblog says:

    […] Another site thats interesting in her comment about wordpress modifications to make it more like a business site – Developed Traffic but a bit on the high side in terms of price for our company now […]

  44. Richard says:


    Absolutely great post. I have several websites that take quite a bit of work, work that WordPress does much more easily.

    I have considered switching them over to WordPress but had issues with how to make them look like a real site, not a WordPress site.

    I will use the tactics on this page to see if I can come up with some ideas.

    Thanks a bundle,

  45. Diane Vigil says:

    You're welcome, Richard; glad it was of help to you.

    Actually, I was approached by Duane Forrester for permission to include this particular page in "How to Make Money with your Blog", which permission I gave with my compliments and a little recommendation for the inside of the front cover. (He references me at my commercial site, dianev.com.)

    It appears that it's been helpful — so I thank you again for your compliments.

  46. Hikari says:

    WordPress is more of like a blogging engine. Don\'t see it as a fully complete solution, see it as a PHP+MySQL enviroment. It has thousands of plugins that add almost all features you want, and you can develop a plugin to do anything u need and is not available.

    About your first opinion, that\'s a particular theme problem, not a WordPress problem. You can simply edit the theme you liked to make fit better your needs, or just change for another more apropriate theme.

    In my site for exemple, the original theme didn\'t have any kind of page horizontal buttons and had fixed-width. I tweaked it, added a nice menu with a lot more than simple pages, and made it flexible widthed.

    And about archive, sitemap and so on, there are a lot of plugins that make it better. You can go to my sites and u\'ll se a bunch if features that help browsing, like a pagebar with numbered links to up to 10 navigation pages, an archive page, and even a page with a list of all plugins I have!

  47. Diane Vigil says:

    Hi, Hikari. I'm not sure you understood the purpose of my article, which was how to turn a WordPress blog into a real website, with various features, and removing the duplicate content issues that search engines don't like. Not *can* it be done, but *how* it can be done.

    That said, while I don't have a problem doing this stuff, the WordPress forums are filled with people who do. Hence my article.

  48. Keenuerfite says:

    i absolutely love your posting choice, very remarkable,
    don't quit and also keep creating because it just simply very well worth to look through it,
    looking forward to read a whole lot more of your own web content, have a good one!

  49. Wordpress plugins and hacks — Blog a Living says:

    […] Developed Traffic's solution for better archives. My post goes into a bit more detail, especially on using the Custom Query String plugin […]

  50. Jeane says:

    Wow, this is awesome.
    Great information, but too much to swallow by once.
    I need to take notes to apply my own website.

    Bye the wary, wordpress isn't only a blog platform, I use to ma on-line store.

    Thank you for sharing!!

  51. Caherine says:

    Actually this was totally awesome that wordpress has great things to offer that creating it. For me, this is way better than the other old-framework we knew.

  52. Diane Vigil says:

    Glad it was helpful. It's amazing that, as old as this article is, it's still helpful.

    To me, the only issue is ensuring that plugin authors keep their plugins up to date!

  53. rencontre adultère says:

    Thanks forr a marvelous posting! I certainly enjoyed reading it, you are a great
    author.I will make certain to bookmark your blog aand will
    come back from now on. I want to encourage you continue your great posts, have
    a nice afternoon!

  54. Rencontre adultère says:

    Hurrah, that's what I was seeking for, what a data! present here at this webpage, thanks admin of this 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.

Manage your subscriptions

© 2004-2019 DianeV Web Design Studio. All Rights Reserved.
28 queries. 0.228 seconds.