Many websites start out being created with nothing more than HTML, CSS, and a few images. For some, that will always be enough and there will never be any need to change. For others, however, there will come a time when more is required. The individuals responsible for maintaining these websites might one day need the extra convenience that comes with publishing content with the push of a button or they might require the extra bells and whistles that can only be incorporated with ease thanks to a wide array of plugins. Whatever the reason, they will ultimately decide that they need to migrate their static website to something more robust and many will realize that now is the time to make the transition to WordPress.
This chapter is designed specifically for those who find themselves in this situation. At first, the prospect of making this transition might seem daunting and you might wonder where to begin. Rest assured that there's no need to feel overwhelmed because this chapter covers the process from beginning to end so that you will never get lost along the way.
In this chapter, you will learn how to:
Prepare for the transition
Temporarily keep your new website hidden from both visitors and search engines
Transfer the content from your old website into WordPress
Create a theme using your current template or select a new theme
Protect your website's position in the search engines
Make sure that your new website is error-free
Entice the search engines to update your listings once your completed website is online
Before going any further, it's extremely important for you to create a backup of all of the files that currently make up your static website. That way you can ensure that none of the data from your original website is lost. This is important for two reasons. The first being that it's always best to keep a copy of every version of your website because you never know when you might need to refer back to it for one reason or another. Secondly, during the transition, you will need your static website to remain online and functional until your WordPress website is ready to go live. Should one of the files from your current website accidentally get deleted before the transition is complete, you can easily upload a replacement copy from your computer to get things back in working order.
After backing up all of the necessary files, you will next need to document the name of each of your web pages and its web address. This is best done using a spreadsheet. Open your spreadsheet program and then label the first column File Names. Next, label the second column URLs. Visit your website and then begin recording this information in your spreadsheet. Once you've finished, your spreadsheet should look similar to the one shown below.
This step is important because, before your WordPress website is made visible to the search engines, you will need to use this spreadsheet, along with the Redirection plugin, to create several 301 (moved permanently) redirects so that the previous URL for each of these web pages points to its new location online.
Now it's time to install WordPress on your server. You should be able to do this automatically, since many web hosts provide their users with a cPanel control panel that includes the Fantastico De Luxe autoinstaller. With Fantastico De Luxe, you will be able to automatically install several different applications, including WordPress.
Even if your web host doesn't offer
cPanel with Fantastico De Luxe, it still may be possible for you to automatically install WordPress. To find out if automatic WordPress installation is possible, contact your web host and ask them if they provide an autoinstaller with their service. If you're lucky, then you just might find that they do offer something comparable to Fantastico De Luxe.
If your web host doesn't offer an autoinstaller, then you will need to install WordPress manually. At the WordPress website, you will find instructions for what they call the Famous 5-Minute Install. So, even if you do have to install the software manually it shouldn't take more than a few minutes if you follow the instructions found at http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install.
Normally, after installing WordPress, you would get right to installing a theme, configuring the software to your liking, and then adding content. In this case, however, additional steps need to be taken to ensure that your WordPress installation temporarily remains hidden. Secrecy, at this point, is important for two reasons:
When migrating from static HTML to WordPress, it's important that you continue to direct visitors to your original website for as long as possible. This measure will avoid a great deal of inconvenience and confusion that your visitors might otherwise suffer.
While creating the WordPress version of your website, you don't want it to be prematurely indexed by the search engines because, at this point, it's still a work-in-progress.
So, the first thing that you need to do to keep your new website temporarily under wraps is locate the
index.php file located in the main folder of your WordPress installation and then rename it to
1index.php. Adding the number one to the beginning of the file name will make it easier to locate when it comes time to return this file to its original name since the it should appear at the top of your file list just under
index.php guarantees that your
index.html file will continue to act as your website's home page for the time being.
Having done that, your WordPress website is now hidden from visitors. Now you need to take steps to ensure that it's also hidden from the search engines crawlers. To do this, begin by logging in to your WordPress Dashboard. Once there, click on Settings | Privacy. In this section, you will find the Privacy Settings screen that contains the Site Visibility settings for WordPress.
In this area, you can choose to make your site visible or invisible to the search engines. Since you don't want the crawlers to index these pages just yet, tick the radio button next to I would like to block search engines, but allow normal visitors. Then, click Save Changes.
This setting doesn't guarantee that search engines won't crawl WordPress since websites with this option selected have been indexed. Taking this measure does, however, at least reduce the likelihood of your WordPress website appearing in the search results until you're ready to reveal it to the crawlers.
There are two ways to get all of the content from your static website over to WordPress. The method that you choose will be determined by the number of pages in your current website as well as the availability of PHP5 on your server because the plugin used to automatically import content specifically requires this version.
As you might have guessed, a website with only a few pages is ideal for the manual method, while a website with several pages is better suited to the automatic method. Once you've determined which method to use, you can then begin the process of importing content into WordPress.
If your static website consists of only a few pages, then the simplest option for getting the content from your static website over to WordPress is to just copy it from your old site and then paste it into the new one. Since the content on your old website existed as pages, it should do so on your new site as well.
Walking through this process will give you a feel for how it's done. For this example, suppose that you're recreating a page from your static site called Services. To do this, navigate to Pages | Add New. On this screen, enter Services as the title of this page. Then, paste all of the content that was previously included in the body of your static Services page into the text area. Now, click Publish to add this page to your site.
Repeat this process for each of the web pages found on your static website until all of your content has been transferred over to WordPress.
If your website contains several pages, then it's possible for you to avoid the tedious process of copying and pasting each one. Instead, you can import your content automatically. To do this, you will need to use the Import HTML Pages plugin available at http://wordpress.org/extend/plugins/import-html-pages/. As previously mentioned, in order for this plugin to function, your server must offer PHP5.
After installing and activating the plugin, go to Settings | HTML Import. On this page, you will find the HTML Page Import Options screen. The plugin should function as desired with many of these options left at their default settings. There are, however, two options that should be discussed.
In the textbox labeled Beginning directory enter the location of the folder that contains the pages from your static website.
Next, scroll down until you see a textbox labeled Phrase to remove from title page. If you included the name of your website in the title tags of your static site, then enter that name into the textbox. Failure to follow this step could result in your website's name appearing twice in the title bar.
Click Import using these options and the content from your static website will be imported into WordPress automatically.
This screenshot shows what the Services web page from the static website looked like before being imported.
In this screenshot, you can see what the newly created Services page looks like after being imported into WordPress with the Twenty Ten theme activated.
As you can see, this page wasn't imported perfectly. The two main problems are that the title is being displayed twice and that the text is being wrapped in to a narrow column. A look at the Services page from the administration area quickly reveals the cause of these problems.
When the page was imported, several unnecessary HTML tags were included along with the page's text. The only way to remedy this problem is to delete all of these unnecessary elements.
So, while the automatic method does save time versus the manual method, it isn't perfect. When using this method, various edits will still need to be made to these pages so that the content on your site will be displayed properly.
At this time, you will need to locate
1index.php on your server and then return it to it's original name of
index.php. Next, find
index.html and then rename it to
1index.html. Both of these steps must be taken at this point because, once your theme is activated, you will need to be able to access your WordPress home page in order to proceed. With
index.php in place and
index.html renamed, your WordPress website will now be visible to visitors, but it will still be hidden from search engine crawlers.
You may think that migrating to WordPress means that you will also have to give up your current website design. This, however, doesn't have to be the case. If you're happy with the way your website looks now, then it's entirely possible to continue using your current design. To do this, you will need to convert your static HTML/CSS template into a WordPress theme.
Your static website may have been designed so long ago that it was created with a deprecated version of HTML or it may not include a stylesheet (CSS). If that's the case then you should first update your design, so that it's compliant with the latest web standards. This will make the process of converting your template much easier and will allow you to create the best theme possible. After your update is complete, you can then proceed with converting your template into a theme.
WordPress is unlike static websites in that a great deal of the information displayed onscreen isn't hardcoded into the web page. Instead, template tags are placed in various template files where hardcoded information would normally appear. These template tags send queries to the database, retrieve information, and then incorporate the results into the web page. For example, when building a static website you would include the page title by using the following HTML code:
<title>Packt Publishing â About Us</title>
For every page of a static website, you need to manually include a unique title. With WordPress, however, the website name and title for each web page is dynamically generated by two template tags. In this way, WordPress can display a unique title for each page by querying the database. As you can see, an updated WordPress-compliant title looks very different from a static HTML page title.
<title> <?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?> </title>
Once you've finished creating your theme, the output shown in your browser's title bar will look similar to the following screenshot. The exact title displayed in the title bar will, of course, depend upon which web page you're currently viewing.
When designing a static website, a different file must be created for each page. Within these files, the header, content, sidebar, and footer are all present. WordPress differs from this in that each section of a WordPress web page is contained within its own template file. WordPress then assembles each of these pieces on the fly to generate a complete web page.
Think of a name for your new theme. Once you've decided what you would like to call it, create a new folder on your computer with this name. Copy the images folder from the backup of your static website that you created earlier and then paste it into your theme's folder.
Open your text editor, create the following blank files, and then save them to your theme folder.
Copy the stylesheet used on your original site and then paste it into the theme folder for your WordPress theme. Next, rename the stylesheet that you just pasted into your new theme folder so that it's now called
style.css in your text editor so that a stylesheet header can be added at the top of the file. This information is required because, without it, your theme won't appear on the Manage Themes screen located within WordPress. The following is an example of what a well-formatted stylesheet header should look like. You will, of course, need to customize it with information that's appropriate to you and your theme.
/* Theme Name: Your Theme's Name. Theme URL: Your Theme's URL Description: A few sentences describing your theme. Author: Author's Name Author URL: Your website address. Version: The current version number for your theme. */
After adding the stylesheet header to this file, be sure to save the changes that you've made.
Segmenting the HTML template used on your static site is the next step in this process. Your aim will be to separate the template into four sections. Open a page from your site's original HTML template and then think about which content would best be placed in each of the
Begin by surrounding the header section of your template with the following comment tags:
<!-- BEGIN HEADER --> <!-- END HEADER -->
Even though this content will be located in
header.php, that doesn't mean that the final comment tag for this section should be placed immediately after the closing head tag. Instead, it should be placed just before the area where the page content begins. For example, if your original site template contains a logo area and a horizontal menu, then the ending header tag would need be placed just after that.
If your template has a sidebar, then its beginning and ending should be marked with the following comment tags:
<!-- BEGIN SIDEBAR --> <!-- END SIDEBAR -->
<!-- BEGIN FOOTER --> <!-- END FOOTER -->
There will now be a section of code located in the center of your template that hasn't been designated with comment tags. Surround this section with the following:
<!-- BEGIN MAIN CONTENT --> <!-- END MAIN CONTENT -->
Now that the HTML template used on your static website has been segmented into sections, it's time to begin building the individual files that will comprise your WordPress theme.
the templates that will comprise your theme, you should first work on creating the
functions.php file. This file allows you to add additional functions to WordPress in order to further extend the functionality of your WordPress site.
With the code that you're about to add to
functions.php, along with the code that you will be adding later on to your various template files, you will be able to do things such as implement a widget-ready sidebar on your site as well as take advantage of many of the new features that are now offered in WordPress 3.0.
A sidebar isn't much of a sidebar if it isn't widget-ready. So, the first piece of code that you need to add to
functions.php will be responsible for enabling this functionality on your site.
functions.php and then enter the following code. What this code does is tell WordPress that your theme includes a widget-ready sidebar.
<?php if ( function_exists('register_sidebar') ) register_sidebar(array( 'before_widget' => '', 'after_widget' => '', 'before_title' => '<h2>', 'after_title' => '</h2>', ));
Now, add the following code that will allow you to make various changes to the background of your site without editing your stylesheet. When you would like to make changes, navigate to Appearance | Background where you will find the Custom Background screen.
add_theme_support( 'automatic-feed-links' );
Now, add the following PHP closing tag to the end of this file:
With the creation of
functions.php complete, you can begin work on your theme's first template file.
Copy the code in the segmented HTML template file that's located between the two header comment tags and then paste it into the blank
header.php template that's located in your WordPress theme folder.
When building a WordPress theme, it's important to include a
DOCTYPE because it tells browsers which version of HTML or XHTML you're using and makes it easier for browsers to render your web page correctly. Its presence is also important because any theme lacking this information won't pass validation testing.
Validation testing services check websites to ensure that they don't contain errors. This is important because if a site doesnât validate it may not appear as the designer intended it to when itâs viewed in various browsers.
If your header doesn't already have a
DOCTYPE statement, add the following line of code at the very beginning of the
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html> with the following. The purpose of the template tag that's included within this
<html> tag is to tell the browser which language you're using to create your web page.
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
From there, remove the opening and closing head tags as well as everything in between them. With the original
<head> tag gone, a new one has to be added to take it's place. This one, however, won't be exactly like the old one. That's because it contains additional information to tell browsers that your site supports XFN.
To learn more about XFN, you can visit the XFN: Introduction and Examples page found at http://www.gmpg.org/xfn/intro.
Here's the new opening head tag that you need to add to your template:
This next piece of code should look familiar since it was presented earlier. As you will recall this code is used to dynamically display your blog name and a unique title for each of your web pages.
<title> <?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?> </title>
Next, enter the following code to include meta information for your website:
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
This next line of code is used to provide a link to the stylesheet for your theme.
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
The following code must now be added so that threaded comments will function properly on your website:
<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
Next is what is known as an Action Hook template tag. Action Hooks must be included in order for some aspects of WordPress to operate properly. For example, without this Action Hook, some plugins won't function. That's why you must now add it to
<?php wp_head(); ?>
With all of that code in place, you can now add
</head> to close this section.
The next line of code that you need to enter will depend upon whether your site currently displays a text title or a logo image. Either way, you will first need to locate the section of code that's currently responsible for displaying this information.
If your website has a text title, then replace the placeholder title with the following code:
<a href="<?php bloginfo('url'); ?>/"><?php bloginfo('name'); ?></a>
If your site uses a logo, then replace it with the following line of code:
<a href="<?php bloginfo('url'); ?>"><img src="<?php bloginfo('stylesheet_directory'); ?>/images/logo.png" alt="Logo" style="border: none;" /></a>
You will, of course, need to replace
logo.png with the appropriate name for your image in order for it to appear. You should also replace
"Logo" in the
alt attribute with the name of your website.
Whether you add either of these next two template tags will depend upon how your current web design is laid out. If your header section contains a navigation bar, then one of the two following template tags will be required.
To place either of them, first locate the unordered list responsible for displaying your navigation bar and then remove all of the list items.
Place the following template tag where your list items were previously located if you would like to display links to your pages:
<?php wp_list_pages('title_li='); ?>
If, instead, you would like the navigation bar to display links to your categories, then this template tag should be entered where your list items previously appeared.
<?php wp_list_categories( $args ); ?>
After adding this last template tag, save
header.php. With this template complete, it's time to create the
index.php template for your theme.
Return to your HTML template file, copy the code located between the two main content comment tags, and then paste it into the
index.php template for your WordPress theme.
In order for WordPress to assemble your template files into a complete web page, you need to include template tags to call the other sections of the site. The first section that you need to call is the header. To do this, enter the following template tag at the beginning of
<?php get_header(); ?>
footer.php templates also need to be called. To do this, enter these template tags at the bottom of
<?php get_sidebar(); ?> <?php get_footer(); ?>
With those in place, it's now time to concentrate on adding The Loop to
index.php. In WordPress, The Loop is responsible for displaying content on your website. Without it, your site would display the header, sidebar, and footer with nothing in between.
The Loop contains several lines of code that perform many different functions. Once again, each section will be added individually, so that you will have a clear understanding of the action that each piece of code performs.
Find the section of your site where your content normally appears. Then, place this code, which is responsible for beginning The Loop, just after the
<div> tag that begins your content area.
<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?>
The next template tag that you're about to place will be responsible for displaying a linked title to the content published on your site. So, locate the area where your content heading appears. It will, most likely, be surrounded by headings tags. Once you find it, remove the placeholder headline and then replace it with the following template tags. If the headline was surrounded by heading tags, then make sure that these template tags are encapsulated in them too.
<div id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
Now you need to add code so that the area known as the post metadata section will be displayed. It's important that the postmeta data is added to your template because this section typically includes information on the author, category, post date, and comment count, as well as a link to edit the post if you're logged in. This information is displayed by placing the following code into your template.
Posted in <?php the_category(', ') ?> by <?php the_author() ?> on <?php the_time('F jS, Y') ?> | <?php edit_post_link('Edit', '', ' | '); ?><?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?>
Next is the template tag responsible for displaying your page's content. This should be placed in the section that currently contains the placeholder content for your site. If this placeholder content is surrounded by
<div> tags, or any other tags, then be sure to encapsulate this template tag in them as well so that the appropriate styles will be applied.
<?php the_content('Continue Reading...'; ?>
Finally, enter the following line to end The Loop:
<?php endwhile; ?>
The Loop may have ended but that doesn't mean that you're finished building the
index.php template just yet. That's because a few more lines of code still need to be added for
index.php to be complete.
If your blog is set to display a certain number of posts per page, then your visitors will need a way to navigate between those pages so that they can access all of your content. Add the following template tag to
index.php and navigation links will appear on your index, category, archive, and search pages.
<?php posts_nav_link(); ?>
Should a visitor arrive at a post or page that doesn't exist (404 error), you will need a way for WordPress to handle the situation. You can also make things more convenient for visitors by adding a search box, so that they can attempt to locate the content they were hoping to find. This can be done with the following lines of code. Just add this code to
index.php and it will act as a combination 404/search page should the need arise.
<?php else : ?> <h2>Not Found</h2> <p><?php _e("Sorry, no posts or pages could be found. Why not search for what you were trying to find?"); ?></p> <?php get_search_form(); ?>
With that code in place, visitors who navigate to a non-existent page will now see a screen similar to the one shown in the following screenshot:
At this point, you just need to add the next line of code to
index.php and then this template will be completely finished.
<?php endif; ?>
index.php, so that you can begin work on your theme's
create this template you need to open
index.php in your text editor. Copy all of the content from
index.php and then paste it into
single.php. With that content in place,
single.php is almost complete. Before it's finished, however, you will need to make some edits and additions to this template.
<div id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
Then, replace the preceding with the following.
<div id="post-<?php the_ID(); ?>"><?php the_title(); ?></div>
<?php the_content('Continue Reading...'; ?>
single.php displays the full post,
'Continue Reading...' doesn't need to be included in this tag. So, replace the preceeding template tag with this one.
<?php the_content(''; ?>
Look for the following template tag that's used to display navigation links on your non-single pages.
<?php posts_nav_link(); ?>
Once you locate that tag, replace it with the this code that's used to display navigation links on single post pages so that visitors can easily move backward and forward between your posts.
<?php previous_post_link('« % link', '%title'); ?> <?php next_post_link('%link »') ?>
Now, look for the end of The Loop. When you find it, place the following template tag above it so that visitors will be able to leave comments on your posts.
<?php comments_template(); ?>
Then, remove all of the code used to display the 404/search box, since this code only needs to be present in the
With those changes made, you can now save
single.php before beginning work on your theme's next template.
To begin, open
page.php in your text editor. Copy the content from
single.php and then paste it into
Now, you only need to perform one edit. Look for the following code and then remove it from this template.
<?php previous_post_link('« % link', '%title'); ?> <?php next_post_link('%link »') ?>
the template file for your HTML website locate the section of code between the two sidebar comment tags and then paste it into
sidebar.php. Delete any content while leaving the tags responsible for styling the sidebar in place. Then, add the following code between the styling tags.
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?> <?php endif; ?>
After those lines of code have been added, save
If you have widgets enabled in WordPress, this piece of code, along with the previous entry that you added to
functions.php, will make it possible for widgets to display in your sidebar. If there are no widgets in use, then the sidebar will display nothing.
Now, you're probably wondering what you're supposed to do with all of the content that was previously located in your sidebar. Well, there's little point in hardcoding it into the
sidebar.php template. Instead, you should take all of that content and incorporate it into WordPress using widgets. If you previously had a list of categories in your sidebar, then place them in your new sidebar with the Categories widget. Perhaps you had a paragraph containing contact information. That can be included using a Text widget. Anything that your sidebar previously contained can easily be added to your site with the use of widgets.
Now that the
sidebar.php template is finished, work can begin on the final template that you need to build for your WordPress theme.
again, open the template file for your original HTML website. This time, copy all of the code located between the footer comment tags. This should then be pasted into the
footer.php template. Other than that, only one piece of WordPress-related code needs to be added to this template file. Once again, you will need to include an Action Hook so that certain plugins will function properly. The following Action Hook should be placed at the top of
<?php wp_footer(); ?>
to the release of WordPress 3.0, themes could use template tags to call files without the theme actually containing those files. For example, a theme could call
comments.php without the theme including that particular template.
In that instance, WordPress would simply substitute the
comments.php template from another theme. Since the developers of WordPress have updated the default theme to Twenty Ten, this will no longer be an acceptable practice. Instead, WordPress themes will be expected to contain all of the files that are called via template tags.
You've already created many of the templates required in order for your theme to comply with these new standards, but there are still two that are missing. They are
comments-popup.php. Without these templates, your theme won't be fully compliant.
The easiest way to go about adding these files to your theme is to copy them from the default theme that was used on version 1.5 through 2.9 of WordPress.
This theme can be obtained from the WordPress Free Themes Directory at http://wordpress.org/extend/themes/default. Once there, download the Default theme to your computer. Next, unzip the ZIP file and then paste
comments-popup.php into the folder containing your theme.
With the addition of those two files, your theme now contains all of the necessary templates. So, upload the folder that contains your theme to the
wp-content/themes directory located on your server.
After your theme has been activated, you might notice that it looks very much like your old template, but that certain elements aren't exactly right. This is likely to occur since new elements have been introduced into your website. Since these elements didn't previously exist in your original HTML template there's nothing in your stylesheet to dictate how they should look.
For example, the post-metadata section will be a new addition to your website, so you may find that the content in this section isn't formatted properly. The preceding screenshot provides an example of a post metadata section without special styling. As you can see, its appearance is identical to that of the post which causes the post metadata section to become distracting.
After an entry is added to the stylesheet to govern the formatting of the post metadata section, it then blends in nicely with the overall appearance of the website.
If you find an element of your website that doesn't look right after building your theme, then create a new entry in your stylesheet to format the layout of that section. This process of making additions or edits to your stylesheet will need to be undertaken for any areas that don't look quite right. Once this process is complete, your theme should look nearly identical to your original HTML template with the only difference being the addition of the new WordPress-specific elements.
When you activated your theme, you may have noticed that its title and description were displayed but that an image wasn't visible. That's because you need to create a screenshot of your new theme in order for it to appear on the Manage Themes screen.
To do this, take a screenshot of your site's home page. Now, you need to shrink this screenshot down to the right size, so open your image editing program and then paste the contents of your clipboard as a new image. Crop out any unnecessary elements (such as your browser) and resize the image so that it measures 300 x 255. Save the image as
screenshot.png and then upload it to your theme folder.
Now a screenshot of your site's new theme will now be visible on the Manages Themes screen.
Perhaps you don't want to keep your old website design and would prefer to make a completely fresh start. If that's the case, then a new WordPress theme is in order. When selecting a new design, there are certain things that you will need to consider. Do you need one, two, or three columns? Is the theme that you're considering widget-ready? Is the stylesheet easy-to-read, so that you can make customizations if needed?
It's best to take the time to find a high-quality theme that you will be happy using for years to come, rather than choosing a sub-standard theme only to discover a few months later that it doesn't meet your needs.
There are a myriad of free and premium themes on the Internet, and it can be a bit of a chore to find the best ones if you don't know where to look. So, rather than aimlessly searching for a theme, you should begin your search at the following sites.
If you want to browse through a massive collection of free themes, then the Install Themes screen should be your first stop. You can reach this screen by navigating to Appearance | Themes. Then, click on the Install Themes tab. Using the Feature Filter, you can search for themes that match a variety of criteria. For example, you could specify that you only want to browse for blue themes that contain two-columns. On this screen, you can also search for themes by keyword, author, or tag.
Smashing Magazine frequently partners with the Internet's top web designers to release some of the highest-quality freely available WordPress themes. Unfortunately, the themes aren't placed into a category of their own. Instead, you must visit the site at http://www.smashingmagazine.com/ and then browse through the Freebies category in order to locate all of the free themes that are available for download. This minor inconvenience is, however, more than worth the trouble because the themes available at this site are among some of the best that you will find.
ThemeForest claims to be the "biggest marketplace of its kind" and, judging by their selection, this certainly seems to be the case. The site, located at http://themeforest.net/, is filled with a large collection of premium website templates and CMS themes, so there's no shortage when it comes to selection. Each design is inspected by a reviewer before it appears on the website to ensure that only quality templates and themes are offered for download.
Elegant Themes, which can be found at http://www.elegantthemes.com/, is a subscription service that allows its members access to WordPress themes for a nominal yearly fee. The site already contains a collection of previously released designs and new themes are added on a regular basis. In addition, members have access to a support forum where a responsive staff offers assistance for any technical issues that might arise.
Premium Themes, located at http://templatic.com/, is basically a combination of the two previous sites in that you can buy individual themes or sign up for one year to become a member of The Premium Themes Club. Membership in the club grants you access to download all of the designs in their collection.
During the process of migrating from a static website to WordPress you will be adding new pages and posts. You will also eventually delete all of your original HTML pages since they will become unnecessary and redundant. This means that your previous content will now exist on pages that are located at completely different web addresses. If nothing was done, then your website would lose its search engine ranking and PageRank for each of those deleted pages. Another consequence would be that anyone clicking those outdated links would arrive at 404 pages rather than the web pages that they hoped to visit.
This is a less than desirable situation and, luckily, it can be avoided by installing the Redirection plugin found at http://wordpress.org/extend/plugins/redirection/. With the help of this plugin, when the search engines arrive to crawl your website, they will be sent to the updated location for all of your old web pages. These redirects will also be beneficial should a visitor happen upon an outdated link since they will also be redirected to the page's new location.
The Redirection plugin is primarily designed to manage 301 redirects. This functionality is especially useful when migrating from a static website to WordPress as many 301 redirects will be needed in order to direct the search engine crawlers and visitors to your new web pages. In addition, this plugin also has the ability to track 404 errors. This will prove useful as it will allow you to monitor your website for errors and to ensure that everything is performing as it should be.
In order for this plugin to operate properly, permalinks need to be enabled on your site. You should, therefore, configure that WordPress setting before installing and configuring the Redirection plugin, so click on Settings | Permalinks. On this screen, in the Common settings area, choose any of the available options other than default. Then, click Save Changes.
After installing and activating the plugin, go to Tools | Redirection. This will take you to the first page of the Redirection settings and configuration area. It's on this screen that you will enter all of the necessary 301 redirects.
To do this, open the spreadsheet that you previously created. Copy the URL of the first static page listed in the spreadsheet and then paste it into the Source URL textbox. Next, enter the new URL for that web page into the Target URL textbox. Then, click Add Redirection. Repeat this process for each of your static web pages.
Clicking Groups, Modules, and Options will take you to additional settings screens for this plugin. These remaining options can, however, be left at their default settings and everything should run smoothly.
You already began to make the switch over to your new website when you reverted
index.php back to its original name and renamed
index.html. With your 301 redirects in place, it's time to complete the transition. The first thing that you need to do is delete all of the files that comprised your original website.
Next, return to the Privacy Settings screen by clicking on Settings | Privacy. Once there, tick the radio button next to I would like my site to be visible to everyone, including search engines (like Google, Bing, Technorati) and archivers. With that, your website will now be visible to both human visitors and search engine crawlers.
Now you must ensure that your new website is free from errors. To do this several quality-control measures will need to be taken. With the help of the following tools, you can virtually guarantee that your website will run smoothly.
Begin by using the W3C Link Checker located at http://validator.w3.org/checklink. As the name implies, this utility crawls your WordPress installation to test your links, so that you can be sure that they all function properly.
Once your website has been processed, you will receive a set of results that will either detail any problems that were encountered or inform you that your website is free from linking errors. Should you find that linking errors do exist, correct the troublesome links and then run the utility again until your website receives good results.
Next , check the validity of the markup used in your WordPress theme by visiting the W3C MarkUp Validator at http://validator.w3.org/.
Once there, enter the URL for your home page into the Address textbox and then click Check.
After the utility checks your website, you will be shown a results screen that will either detail errors and warnings or inform you that your website has passed inspection. If you discover that your theme contains markup errors, you will need to fix these problems, and then run the validator again until your website is found to be error-free.
The last of the WC3 validators that you will need to run is the CSS Validator found at http://jigsaw.w3.org/css-validator/. As you might have guessed, this utility will check your site and stylesheet for possible errors.
Enter the URL for your home page into the Address textbox and then click Check.
Once your CSS has been checked, you will be taken to the results screen, which will either present you with information detailing the errors that were encountered, or inform you that your CSS is error-free. If problems were found, you will be shown these errors and warnings along with a section containing valid CSS information that you can use to help you correct these issues. After correcting these problems, run the utility again until no errors are found.
A website isn't much good if it doesn't display properly in all the major browsers. That's why cross-browser compatibility is so important. A visit to the Adobe BrowserLab at https://browserlab.adobe.com/, will provide you with an exact rendering of your website as it appears on all major browsers.
Should you discover that your website doesn't display properly in one of the major browsers, then you will need to make changes to your design in order to correct the issues. Continue tweaking your design and subjecting it to cross-browser compatibility testing until everything displays properly.
Now that you've verified that your website is technically sound you next need to ensure that all of your content appears correctly. To do this, visit your website and inspect each page. Has all of the content transferred as you intended? If not, visit the Dashboard to manage the offending posts and/or pages.
Just because you've updated your website that doesn't mean that the search engines will crawl all of your web pages. That means that the search engine listings for some of your web pages could be updated quickly while others remain outdated for quite some time. There is, however, something that you can do to encourage the search engines so that they will be more likely to give your website a thorough crawling.
What is needed, in this situation, is a site map. Luckily, it's possible to create a site map for your entire website with the help of the Google XML Sitemaps plugin.
This plugin, which can be found at http://wordpress.org/extend/plugins/google-sitemap-generator/, is designed to generate an XML site map for your website. A site map is useful because it will provide a road map for the crawlers so that they can easily find the new locations for all of your website's old pages as well as discover any new pages or posts that you might have added.
With this plugin, you will only need to customize a few settings and then click a link in order to generate a site map of your entire website.
At the top of the screen, you will see a message informing you that the site map for your website hasn't been generated yet. That's fine. This message should just be ignored for the time being. You need to focus on configuring some of these settings first.
In the Basic Options section, under Sitemap files, deselect Write a normal XML file (your filename). All search engines support compressed site maps, so there's little point in wasting the disk space that would be used by creating an uncompressed site map.
The options in the Building mode section should be left at their defaults, so move on to Update notifications where you can select which search engines you want to notify about updates to your website. By default, all of the search engines are selected, except for Yahoo! Add a checkmark next to Notify YAHOO about updates of your Blog, so that this search engine is also selected.
In order for Yahoo! to receive notifications you will need to provide an API key. If you already have a Yahoo! API key, enter it into the textbox shown in the following screenshot:
If you don't have an API key, right-click Request one here and then open that link in a new browser window. Doing this will direct you to a Yahoo! Login screen. Once there, either log in or create a new Yahoo! account. Once you've logged in, you will then be taken to a Developer Registration page. Provide the necessary information and then click Continue. You will then be provided with an application ID. Copy this string, return to the settings screen for Google XML Sitemaps, and then paste your API key into the Your Application ID textbox.
All of the settings under Advanced options should be left at their defaults. You can also scroll past the Additional pages area until you reach the Post Priority section of the screen. At this point, since your WordPress website is new, your posts won't have any comments so it doesn't make sense to leave this set to the default option that uses the number of comments to calculate the post priority. Instead, tick the radio button next to Do not use automatic priority calculation.
All of the remaining settings should be left at their defaults, so scroll to the bottom of the screen and then click Update options. After the screen refreshes, click the link at the top of the page to generate your site map. The plugin will work to build your site map and, when it's complete, a screen that details the results of the build will appear.
By now, the transformation will be complete and your previous site will have successfully evolved from static HTML into a fully-functional, dynamic WordPress website. You could consider this to be the end of this project or you could look at it as being just the beginning.
WordPress is capable of doing so much. With skill, imagination, and plugins your website could grow even further. Now that you have the power of WordPress at your disposal, why not make the most of it and explore the possibilities?
In this chapter, you learned the steps required to transfer a static HTML website over to WordPress. With this information, you now know how to make this transition seamlessly. You also learned how to redirect site visitors and search engine crawlers so that no traffic is lost as a result of the changes that have been made to your site.
In the next chapter, you will learn how to build a community portal where members will be able to build personal profiles and interact with their fellow members.