I have been working hard lately to move tripwire magazine from Joomla CMS to WordPress. The process have involved quite a few tasks but I’m almost done and have decided to put the new tripwire magazine online. In this post I describe the process and the main challenges I have faced so far. I hope that you all will give me some feedback and suggestions for how to further improve this web-site.
Joomla CMS is a brilliant Open Source CMS that I know very well. I decided to try if Joomla could be used for a blog project and started tripwire magazine mainly as a proof of concept. I still think that Joomla is great and I’m sure I will use it again some time but for a blogging I have realized that it is unfortunately not that perfect. First of all Joomla is not designed to be supporting blog style web sites and therefore lack some of the very fundamental blogging functionalities. As one of the top 3 popular Open Source CMS projects in the world Joomla have a nearly endless number extensions. This means that turning Joomla into a blog is possible and not that hard but the pieces will never be as nicely integrated as fx. WordPress that is designed with blogging in mind. The result is low efficiency when preparing posts and I finally had to make the hard decision…I had to abandon Joomla and choose a dedicated blogging solution! Choosing wasn’t that hard as I knew WordPress would be right for me.
I knew that moving from Joomla CMS to WordPress would be hard work and I had to consider alot of things. In this post I describe some of the tasks I have been working on. The make over has just started but certainly more features and functionality will be added soon. Please leave a comment or drop a mail tomail[at]tripwiremagazine[dot]com to let me know if you like the new tripwire magazine and if you have critics or suggestions for improvements.
1. Choosing a new Theme for WordPress.
This part was really hard but I decided to kick start the process and purchased a Premium Theme from WooThemes. The Theme I fell in love with is Fresh News and so far I have only modified cosmetic stuff. I’m quite sure I will do more customization going forward to make tripwire magazine stand out but there’s little time for that now. The Fresh News Theme is very easy to change and it is very clean and simple in the way it is build up. Further it makes use of Theme Options making it easy to configure basic stuff without any need for coding.
You can buy the Woothemes here.
2. Migrating all posts from Joomla CMS to WordPress
I fell really lucky that tripwire magazine is a fairly new website with a relatively low number of posts. Migrating posts wasn’t that hard in itself but it was mainly a manual process and I ran into some challenges on the way.
a. First of all I manually copied all post markup into a code view’er and did bulk replace on image URIs.
b. I then created each post manually in WordPress. This is where the main challenges started to come. It was a requirement to maintain the permalinks used in Joomla to make sure all external links wouldn’t be broken (search engines, digg, Twitter links, delicious etc.). In Joomla I decided to use the following pattern [domain/section/category/postname.html]. All articles in Joomla must be and can only be assigned to one section (like a WordPress category) and one category (like a WordPress tag) and I actually consider this as one of the main shortcomings of Joomla. In WordPress I wanted to use [domain/category/tag/postname.html] to keep the post URLs SEO optimised. The problem I found was that, as posts in WordPress can be assigned to as many categories and tags as you like, it has been designed to pick the first category or tag created. The consequence of this design meant that I had to be very careful of what categories and tags I created and in what order. Fortunately WordPress allowed me to change the postname in the permalink making it possible to match old permalinks. Next problem… %tag% wasn’t replaced with tag-slug as expected. This required some digging but I found a support page explaining a workaround.
3. Migrating comments
This was probably the most annoying part. All comments provided by the readers of tripwire magazine just has to be moved to the WordPress system. As there are quite a few comments so far (Thanks for that and keep commenting it is highly appreciated!) it could not be a manual process. I decided to create a module component for Joomla that pulled out all comments from the database and turned this into SQL INSERT scripts. In this process I had to switch between post IDs in Joomla and in WordPress. After struggling a bit with escaping characters that cant be inserted into a database directly it actually worked as expected. Comments where in and showed up as expected in the WordPress back-end and on the individual posts. What didn’t work as expected was the comment count on each article. Even though a article has fx. 10 comments it showed 0 comments in the article listings.
I looked into this and found that the WordPress database has been de-Normalized (probably for performance reasons) so that there is a comment count field in the posts table… I had to go into the database and edit this field for each post – quite ogly… Redundant data in a database is not good unless there’s a need for optimizing performance and I hope this is the reason why the WordPress developers did this.
4. Adding the html meta tags.
WordPress does not by default add individual html meta data specific to each post. The are many options for this but I needed full control. I tried out some WordPress plugins and stumbled over HeadSpace2. This WordPress Plugin is build by a serious developer that knows how to make good software. The configuration of the plugin is integrated very well into WordPress back-end and it offers nearly unlimited flexibility when it comes to controlling html meta data. I had one challenge getting it to work though and I could see in forums i visited that others had the same issue. The keywords meta tag was not inserted as expected even though I thought it was enabled. (<meta content=”…” name=”keywords“/>). The HeadSpace Page Modules options page allows you to drag and drop options into 3 different states; simple, advanced and disabled. Unfortunately the Keywords option was not enabled and had to be dragged from disabled to Simple.
5. Adding Social Bookmark counters and links.
I developed functionality for the previous version of tripwire magazine that showed number of tweets and number of bookmars to delicious and digg. I’m quite happy for this functionality and I had to move it to WordPress. Getting the counters from tweetmeme.com, delicious.com and digg.com using thier JSON services is not that hard but it consumes time. In Joomla I turned on page caching to keep the good response times. I had planned for some time to get rid of this as it is basically not best practice to use that kind og caching. I decided to create a generic service that could return the html markup to draw the counters based on the article url. In the WordPress pages I decided to load the counter markup from the service by using Ajax to make them load after the WordPress page has finished loading. This way the articles and category listings will not be slowed down by external service calls. The picture below show how the end result is.
The Tweetmeme.com service is restricted in is usage and can only be called a limited number of times every hour. Therefore I had to introduce caching in the service to make sure the service would only be called a few times. This also means that the loading of the counters will be faster.
Please leave a comment or drop a mail tomail[at]tripwiremagazine[dot]com to let me know if you like the new tripwire magazine and if you have critics or suggestions for improvements.