Join Chris Coyier for an in-depth discussion in this video Reviewing the client spec and deciding on WordPress, part of WordPress 3: Creating and Editing Custom Themes.
The website we're going to be building in this course is for an imaginary manufacturing company called Widget Corp. They've come to us to ask for a redesign of their website. When any client comes to you and asks for a redesign it is because they're having problems with their current website. It could be real tangible problems, like we want to sell more widgets or we want more traffic to our website, or it could be less tangible, like they're just sick of their current website. They just think it's ugly. It's our job as designers to uproot a clear set of goals for this project.
So let's look at the goals we've uncovered for this project. The first goal that we're going to try and meet is identity. Widget Corp. is a company that makes widgets, so there shouldn't be any doubt when a user gets to this page that the page is about widgets. This is a widget making company, and in fact, they want to be able to showcase some specific widgets, and then overall just improve the look of the website. Their next goal is just about information, making it easy for people to find information about the company and contact the company.
Now those are easy things for us to do. We just want to make sure to not bury those links as we move forward with the design. The next thing they want is a blog and that's great. It means they want to be involved more with their website, publish new content, get readers to their site. That's great. That ties directly into our last goal in that they want to be able to update the website themselves, and when they say that, it means they want to be able to do it through the web. Of course, they don't want to learn HTML and all those technologies. So of course, they'll be able to publish new blog articles, but because they've expressed an interest in this, we're going to try and make as much of their website updatable by themselves as possible.
So with this clear set of goals, we're going to keep all of those in mind as we move forward with the design. Since we're starting from scratch with this website, our first big project is going to be designing in Photoshop, but before we do that we should have some grasp of the technologies we're going to use on the final website, as it may inform our design decisions. The technologies that we choose should match the goals that we just covered. First and foremost, we're going to need to be using a CMS. The vast majority of websites these days use some kind of CMS.
Basically it's just a good idea. For us, it's going to allow us to fulfill that need that our clients had that they want to be able to update the site themselves, do their blogging, publish new content, edit content is already their, stuff like that. CMSs also usually have some built-in technology to be able to be able to extend the functionality of them. So if you need your website to do some fancy new thing, a CMS usually has someway to kind of get that done. The vast majority of websites these days are using a CMS of some kind.
The most important idea though about a CMS is about the fact that it abstracts the content away from the layout, and a good analogy is going to serve us here. Think of CSS. You could have a website. It's got a thousand pages on that website, all those thousand pages linked to one CSS file. So if the day comes you want to change the background of your website from brown to black, you go into that CSS file, you change that one line of CSS, and all thousand of those websites have that new background color applied to them.
It's that level of abstraction that makes Web design easier. It's the same idea with the CMS. We have 500 blog post published. We decide we want to make a change in that layout. We want to put the date at the top of the article instead of the bottom of the article. We can go in and make a change to that layout and it's going to be updated on all 500 of those blog posts, without having to go in and edit 500 pages of content. It's that same abstraction idea that makes using a CMS a good idea. So it should be no surprise to you folks that we're going to end up choosing WordPress.
That's what this course is all about. So WordPress is a CMS and it matches all those technologies that we just talked about. The biggest thing now, WordPress has a great interface. The admin area of WordPress just looks nice and it's easy to use and train other people to use in my experience. Very easy to use buttons. It's very easy to tell a new client how to go in and publish a new blog post. Speaking of blogging, our clients wanted blogging. That was one of their needs.
WordPress has its origin in blogging. It's great blogging software, but it's not only blogging software. Old kind of curmudgeons and trolls on the Internet might give you some slack once in a while telling you, "WordPress, it's not a CMS. It's only a blogging engine." That's not true. WordPress has grown up a lot over the years. It's definitely a full content management system. We're going to need to be using the CMS abilities of WordPress to flesh out our widget pages and our store and all that for this client.
So we need a full CMS. WordPress is a full CMS. WordPress is going to serve us well here. WordPress is also extremely easy to extend with new plug-ins and functionality. There are tens of thousands of plug-ins for WordPress to extend what it's able to do. We can't ignore our own needs here though either. WordPress is going to match our client needs very well, but we just can't ignore ourselves. We're the ones that are going to be building this site. So what we need is important too. A lot of our own needs match our client needs and that's fine.
Like the user interface, that's important. If we found a CMS, it's a great CMS, it matched our client needs perfectly, but we didn't like using it, it would be unpleasant for us. We don't want to work day in and day out in a tool that we don't like, so that's perfect for us in that way. Here is a big one though. This is personal to me. I already know WordPress well. If you take this course and you build a WordPress site, you're going to know WordPress pretty well too. Now, next week we're done with the Widget Corp. site and we have a new client come through the door.
Do we want to go ahead and pick our completely different content management system and go through the learning curve of that one? Not necessarily. A lot of these CMSs have the same kind of things that they're able to do, the same kind of feature set. Joomla!, great software. If we went through that whole learning curve, maybe there is a new client that walks through the door, we'd pick Joomla! for it instead. It's just one of those things where repeating things that you have already learned often isn't necessary. So if we know one technology really well, we can be instantly productive with it and that will save us a lot of time.
So now that we've settled on WordPress as the software we're going to be building the site with, let's get started doing it.
- Building a design in Photoshop
- Converting Photoshop design to HTML and CSS
- Setting up MAMP on Mac and WAMP on Windows
- Moving HTML and CSS into a WordPress theme
- Building navigation
- Using custom fields
- Creating a commenting system
Skill Level Intermediate
Q: What prerequisite skill do I need to be successful in this course?
Q: The index.php file that the author is working with in Chapter 3 doesn't match mine after the "Building a sidebar" movie. It appears to change between the "Building a sidebar" and "Building the navigation" movies. What code am I missing?
A: The author makes some changes off screen between several movies in this title, simply because there is so much material to cover. These changes are provided in the exercise files.
However, if you are following along without the exercise files, you catch up to him by adding the following code to your index.php file, directly after the <?php get_header(); ?> line:
Near the end of the file, just before <?php get_sidebar(); ?>, add a closing div tag, </div>, to complete the div wrapper.
The resulting code will look like so. You may also copy and paste this into a new file and save it as index.php.
<?php get_header(); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
<?php the_content(); ?>
<?php the_tags('Tags: ', ', ', '<br />'); ?>
Posted in <?php the_category(', ') ?> |
<?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?>
<?php endwhile; ?>
<?php include (TEMPLATEPATH . '/inc/nav.php' ); ?>
<?php else : ?>
<?php endif; ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Q: How do I load my custom theme once I have finished?
A: Copy the Custom theme folder to your new WordPress installation and put it in wp-content > themes. Then you can activate the new theme and work with it from there.