WordPress Site Conversion
From June 25, 2011 to July 1, 2012, I undertook a major project to bring The Schumin Web up to modern standards. The project, codenamed “Falcon” (after a JMU student web server), involved converting from a site made mostly of static pages with several small databases providing some (but not all) content, to the WordPress content management platform. This allowed more flexibility in updating the site, and finally separated the site’s design from the content once and for all.
This was neither a simple nor quick process. I had determined that I was going to do this the right way, and thus make a site that was very solidly built, with no kludges or other funny workarounds. Everything would be built like it was supposed to be, even if it took a long time to implement. Choosing the design of the site – what the site would actually look like – was the easiest part. While an early plan had been to do a full site redesign along with moving the content to WordPress, I ultimately decided, in part due to my inability to come up with a new design that satisfied me, to simply build the existing site design as a WordPress theme. Thus there would be no major changes in the site’s basic appearance, which made learning how to build a WordPress theme that much easier, since I just had to duplicate what I already had rather than create a totally new design on a system I was still largely unfamiliar with. A full redesign would come later, after I had fully mastered WordPress via the conversion process.
The theme was built by the middle of August 2011, and content conversion began soon after, lasting until May 2012. Content conversion was a manual process, bringing existing content into the new WordPress system, and then updating links to point to new locations for content and restoring images. Many images were reprocessed from the originals, with the resulting images available in much higher resolution than before. Reprocessing from the original digital files made many images appear better than they ever had, as some of the image processing over the years yielded results that I later considered odd looking. This process corrected those flaws, and also created a new set of image masters for the site in the process, which will certainly prove valuable in future site work. The site, as rebuilt under WordPress, launched on July 1, 2012.
On this page, I lay my cards out for all to see. I designed the theme under WordPress 3.1 and 3.2, and in the process of learning how to build Schumin Web in WordPress, I consulted an amazing amount of reference material. The links presented here are those that helped me reach the finished theme and site, and get over various issues that I encountered in the process of site building. Hopefully this will help others who are similarly building WordPress sites for the first time.
Getting started
- Convert Static Site To WordPress – Provided me with ideas about how to go about the conversion task.
- Editing a WordPress theme with Dreamweaver CS5 – Used for very basic overviews and introduction to XAMPP for creating a local test environment. I didn’t find the theme that this tutorial says to try out to be all that useful for me.
- How to Create a WordPress Theme from Scratch – This is what got the ball rolling for me, as it was something that built on and extended my existing knowledge.
General theme building
- Stepping Into Templates – From the WordPress Codex.
- The Anatomy of a WordPress Theme – Contained a graphical overview of how a theme went together that I found helpful.
- Theme Development – Codex page.
- WordPress Multiple Sidebars – Schumin Web uses different sidebars depending on the area of the site, and this showed me howto set that up under WordPress.
- How to add dividing line between posts – From WordPress support forum, to add the line between Journal entries. The answer ended up being pretty obvious, but it never hurts to check.
- Removing “Comments are closed” from WordPress – To hide that ugly “Comments are closed” message. I used the CSS method.
- Styling for Print – From the WordPress Codex about how to make a print-optimized version of a site.
- CSS – From the WordPress Codex. This helped me find what terms WordPress uses for certain built-in functionality, and thus the need to learn what they are and to style them as needed using the correct names.
- How to add a favicon to your site – Self-explanatory, but not the same as one would do for a static site.
Custom post types
- Custom post types in WordPress – Provided me something of an overview about custom post types.
- Easy Guide to Displaying Custom Post Types in Your WordPress Theme – Had boilerplate code for creating custom post types in my theme.
- Working With WordPress 3.0’s Custom Post Types – Another page with boilerplate code.
- Function Reference/register post type – WordPress Codes page about displaying custom posts.
- How to Create a Custom Post Types Archive Page in WordPress – This is what I referred to in order to create the output pages for things like the Photo Feature Archive and the Splash Photo Archive, which are dependent on custom post types.
- 6 Ways to Customize WordPress Post Order – How to sort custom post results.
- Template Hierarchy > Single Post display – From the WordPress Codex. This is how I figured out how to get single pages for custom post types.
- Setting posts per page in query_posts – Self-explanatory.
- Add custom post above page content – Used on the Welcome page to put the splash photo at the top of the page vs. underneath the page text.
Custom fields
- Custom Image and Link for Each Post using WordPress Custom Fields – Gave me a decent overview on how custom fields worked.
- Add, Delete and Edit Custom Fields in WordPress – More on how custom fields worked, and on how to delete them as needed. I use the plugin recommended here (DeleteCustom) if I need to delete custom fields en masse.
- query_posts where custom field is true – From the WordPress forums.
Miscellaneous functions
- How to Display Recent Posts in WordPress – I use this function to display Journal entries on the Main Page.
- Retrieve and Get WordPress Post ID Outside the Loop as PHP Variable – I use this as a “secret” page anchor in the Journal.
- Hard coded theme links – I have one hardcoded link in my theme, for the Content Licensing page, in the footer. This helped ensure that it would work.
- Ultimate Roundup of 35+ WordPress CMS Plugins – List of WordPress plugin recommendations. Of these, I used #25, Google XML Sitemaps.
- Changing the Site URL – From the WordPress Codex. One of the final things to happen with Falcon was the movement of the site from the development location to the production location. I used the “relocate method”.
- WordPress FAQ: Changing Links and Images After a Move – Discusses plugins for updating internal URLs after moving a WordPress site to a different location. I ended up using Velvet Blues Update URLs for this.
- Make the Visual Editor Actually WYSIWYG – Styling the TinyMCE edit box. This makes the edit box look like the actual site, which I find really helpful because it makes the editor look like Schumin Web.
- WP_Query & pagination not working – This is what I used to fix this issue, where pages weren’t advancing properly.
- Easily Exclude Pages from Menus – WordPress How To – About excluding pages from front-end navigation using a custom field. I use this for “Part 2” pages and beyond. This does break the WordPress Page Tree plugin, which I had used earlier to get a tree layout of all of my pages. It does not break the CMS Page Tree View plugin, which, besides not breaking under this code, is just generally a much better page tree plugin.
- Display text if certain custom field text exists? – I use this to switch between horizontal and vertical photo features on the Main Page.
- The Ultimate Quickstart Guide to Speeding Up Your WordPress Site – I was having very long page load times as I was building the site, and materials from here are what I ultimately ended up going with, installing WP-DBManager and W3 Total Cache. The slowness that I was having turned out to be from the Subpages Extended plugin, which I believe that I was using beyond how it was intended (I ended up removing the plugin), but this still improved performance beyond what I would have with no speed plugins.
The biggest thing that I had to remember when switching to a CMS for the first time is that I was not alone. Lots of people used WordPress in ways that I had never thought about. Whenever I was in doubt, I went into Google and looked up exactly what I needed to find out, and often found something useful.
And if I got stuck, I went to the WordPress support forums. For the support forums, I soon discovered that I got the best results when I brought some code to the table. The users of the forums will not write your code for you, and I also didn’t do very well with more generalized questions. However, the folks there were great if I had given it a shot first, and then presented the code. People looked at the code and then came back with answers, telling me what I had done wrong, and how to do it better. And of course, the number one rule of social spaces still applied: be courteous, and post a thank you message once the issue is resolved.