After wading through a headache-inducing number of Codex pages, and muddling through various articles which briefly touch on using WordPress as a CMS but don’t actually provide clear instructions… I decided to write my own version of how to do it.
Powering your entire site with WordPress can be done with a minimum of configuring, while still affording you the ability to maintain a tidy file structure, by installing WordPress to its own directory). This way, your blog “virtually” exists in the root, allowing you to create static pages and offering control over the site-wide content you develop.
Update: This is not an article on how to hack WordPress into a full-fledged CMS. It was written long ago (in case you didn’t notice) and targeted version 2.0. It remains mostly for posterity. Please note that I also removed a large portion of this tutorial because the release of WP2.1 made it obsolete.
Installing WordPress Into its Own Directory
- Create a folder in your file structure where you want to install WordPress. Unpack and FTP all files into that folder.
- Navigate to the new folder in your browser and follow the prompt for setting up your database and logging in
- Once logged in, go to Options > General and make sure the address currently in the box labeled WordPress address (URI) matches the name of the folder you installed to, for example http://whatever.com/yourblog
- Change the address currently in the box labeled Blog address (URI) to reflect your root – http://whatever.com
- Save your changes
- Still in Options, go to the Permalinks tab, and change the structure to whatever you prefer. I typically use /%category%/%postname%/
- Download .htaccess (thereby forcing it to be visible on the local side as well)
- Copy index.php and .htaccess from your blog root to the site root.
- Open index.php and insert the folder name of your blog just before the slash (/) so it reads:
require ('./whatever/wp-blog-header.php') ; - You should now be able to navigate to your site root http://whatever.com, and see your blog content, rather than a static front page.
Note: The purpose of changing permalinks at this point is to force the .htaccess file to show up in the remote file structure, where it would normally be hidden (even if you have “show hidden files” selected in your HTML editor prefs)
Note: Be sure you don’t have something like index.htm in your root, which would override index.php.







