Stuff You Should Do when building a wordpress site

Update 4/25: added a section about menus.

I am not a WordPress expert. That said, I have learned a little bit about WordPress, and Lauren encouraged me to write it down.


I use two users: “admin” and “john”. If you’re going to mess with your blog and it’s brand new, consider creating an account for yourself and giving it WordPress administrator access. Then everything will at least be recorded as you. Then “admin” user becomes your “user of last resort.”

General Settings


  1. Create two “pages”–“Home” and “Blog”. Home will be your home page. The content of “Blog” will be totally ignored; just create the page.
  2. Go to Settings > Reading.
  3. Change “Front page displays” to “A static page” and set Front page to “Home” and Posts page to “Blog” (the two pages you created in step #1).
  1. Go to Settings > Permalinks
  2. Select “Custom Structure”
  3. Type in “/blog/%year%/%monthnum%/%postname%/”. This will make your blog posts start with “/blog/” and your URLs look like “/blog/2013/04/stuff-you-should-do-when-building-a-wordpress-site/”


Install and set up these plugins:

  • Akismet: pay for it if you need to (I did). Very important.
  • Disqus comment system: set up an account and do this. Move the comments infrastructure (including managing identities) from being your problem to being their problem. If you already have a blog and switch to Disqus, you can have WordPress import your comments. I did this last week but it took like 5 days before the import completed.
  • Google Analytics for WordPress: get an ID and do this.
    • Once installed, go to the settings. Click the “show advanced settings” checkbox. Set “Ignore Users” to “Subscriber (ignore all logged in users)”. Now when you’re logged in you won’t be added to the analytics.
  • Google XML Sitemaps: install.
  • If needed, Open in New Window Plugin. This adds JavaScript that will convert all off-site links to open in a new window. I used to think this was horrible practice, but many people seem to be doing this nowadays and now I kind of expect it.
  • Redirection, so you can manage your HTTP redirects within WordPress.
  • Slick Social Share Buttons. This can put a bunch of different services’ share buttons on your page. You can configure the heck out of how they’re displayed
  • W3 Total Cache, if you are concerned about potential spikes in traffic. This plug-in can be super complicated but it can also help you use really advanced capacity management services like CloudFlare.
  • Widget Context. This allows you to say widgets only show on certain pages–for example, the blog categories list should only show up on blog pages.


If you are the kind of person who will make ANY changes to your theme, you need to create a “child theme” for it. Basically you create a new theme directory and create a file called “style.css” in it that has a special comment header in it. Part of that header (“Template”) tells WordPress it’s a child theme. After you’ve set this up, you can select your child theme from the Themes list and it will inherit everything from the parent theme.

You put your mods into the child theme (e.g. additions to functions.php, other PHP files, styles). When you update the parent theme, these mods “stick” and you don’t have to re-do them.

Stuff you could potentially do with your theme:

  • Make an “author-«username».php” page to have a fancier blog author page.
  • Change how blog lists show up and are summarized
  • editor-style.css: Change the stylesheets use in the editor to better mirror what visitors see.
  • Change your footer.php
  • Add JavaScript on top of your pages e.g. I made a “hide”/”show” thing for my work email sign-up widget.


If you installed Widget Context, you can change where your widgets show up. I find this helpful especially to limit the blog-specific stuff from showing up on posts (i.e. non blog pages).

By default, WordPress will build a top-level menu for your site that includes all your pages that don’t have a parent. To change this,

  1. Go to Appearance > Menus
  2. Create a Menu (maybe called “Home menu”? The name is not important)
  3. Add whatever you want to it
  4. Save it
  5. Under “Theme Locations” (upper left), hopefully you have an option for “Primary Menu”. Set this to the menu you created (“Home menu”).
  6. Now only what you add manually to this Home menu will show up as your top-level menu.