
{"id":280,"date":"2006-04-04T16:41:57","date_gmt":"2006-04-04T11:23:57","guid":{"rendered":"http:\/\/nullpointer.debashish.com\/2006\/04\/04\/migrating-a-roller-blog-to-wordpress\/"},"modified":"2008-04-11T18:49:42","modified_gmt":"2008-04-11T13:31:42","slug":"migrating-a-roller-blog-to-wordpress","status":"publish","type":"post","link":"https:\/\/nullpointer.debashish.com\/migrating-a-roller-blog-to-wordpress","title":{"rendered":"Migrating a Roller blog to WordPress"},"content":{"rendered":"<p>Ok I admit that I never made a formal announcement about it, but this blog has now moved to its new home at http:\/\/nullpointer.debashish.com. If you are reading this, you are at the right URL.<\/p>\n<p>This blog used to be happily <a href=\"http:\/\/jroller.com\/page\/debashish\">hosted at<\/a> the excellent free service provided by the JRoller people. <a href=\"http:\/\/rollerweblogger.org\/page\/project\">Roller<\/a> is one of the advanced blogwares around, written using Java and I enjoyed using it throughout. If I could afford Java hosting, I would have probably gone for JRoller again. However, with <a href=\"http:\/\/en.wikipedia.org\/wiki\/PHP\" title=\"PHP\" rel=\"wikipedia\" target=\"_blank\" class=\"zem_slink\">PHP<\/a> there is hardly any competition for <a href=\"http:\/\/wordpress.org\">WordPress<\/a>. So dear readers, here is Null Pointer on <a href=\"http:\/\/wordpress.org\/\" title=\"WordPress\" rel=\"homepage\" target=\"_blank\" class=\"zem_slink\">WordPress<\/a>, running on the pretty <a href=\"http:\/\/www.squible.org\">Squible<\/a> theme.<\/p>\n<p>Now to the crux of this post. How did I manage migrating all the Posts and comments from JRoller to WordPress?<\/p>\n<p>It was not simple really; because JRoller does not provide any mechanism to backup blog posts, leave alone the comments. Therefore, I asked the Roller people and <a href=\"http:\/\/rollerweblogger.org\/page\/roller\">Dave Johnson<\/a> was kind enough to come to my rescue. He gave the plausible suggestion of creating a custom RSS Feed. The basic modus operandi is:<\/p>\n<ul>\n<li>create a new template in your blog<\/li>\n<li>within the template use the $pageModel object to fetch all entries of your blog<\/li>\n<li>iterate through those entries to output your blog in RSS or <a href=\"http:\/\/en.wikipedia.org\/wiki\/Atom_%28standard%29\" title=\"Atom (standard)\" rel=\"wikipedia\" target=\"_blank\" class=\"zem_slink\">Atom<\/a> format<\/li>\n<li>create your own name-spaced <a href=\"http:\/\/en.wikipedia.org\/wiki\/XML\" title=\"XML\" rel=\"wikipedia\" target=\"_blank\" class=\"zem_slink\">XML<\/a> element to represent comments within each item<\/li>\n<li>write a simple program that parses that and uses <a href=\"http:\/\/en.wikipedia.org\/wiki\/MetaWeblog\" title=\"MetaWeblog\" rel=\"wikipedia\" target=\"_blank\" class=\"zem_slink\">MetaWeblog<\/a> API to post to your new blog<\/li>\n<\/ul>\n<p>Now the last step is not that intricate because, guess what, WordPress 2.0 does provide the facility to <a href=\"http:\/\/codex.wordpress.org\/Importing_from_other_blogging_software\">import a blog<\/a> from a RSS feed. Yet the ordeal would be far from over, because while WordPress can import posts from your feed it <em>cannot <\/em>import the post comments. Nothing against WordPress, the <a href=\"http:\/\/en.wikipedia.org\/wiki\/RSS\" title=\"RSS\" rel=\"wikipedia\" target=\"_blank\" class=\"zem_slink\">RSS 2.0<\/a> specification does allow a <a href=\"http:\/\/blogs.law.harvard.edu\/tech\/rss#comments\">comments sub element<\/a> but that can only be a link to the actual comments page. So basically we need to defy them all, add the comments inline in our custom RSS Feed and then <em>modify<\/em> the wordpress RSS Import Utility to decipher and import the comments as well.<\/p>\n<p>When you are ready with your JRoller blog feed, just backup the existing RSS Importer file (<code>wp-admin\/import\/rss.php<\/code>) and place the modified importer PHP there. Rest is easy, only remember to break up your RSS file into smaller chunks if you have a really large blog, the importer has the tendency to timeout often.<\/p>\n<p><center><img decoding=\"async\" src=\"http:\/\/nullpointer.debashish.com\/wp-content\/uploads\/2006\/04\/rss_importer.jpg\" id=\"image284\" alt=\"WP RSS Importer\" \/><\/center><\/p>\n<ul>\n<li><a href=\"http:\/\/nullpointer.debashish.com\/wp-content\/uploads\/2006\/04\/roller_template.txt\" title=\"Roller RSS2.0 Template\" target=\"_blank\">Click here<\/a> to view the Roller template to create your custom RSS2.0 Feed that includes comments as well.<\/li>\n<li><a href=\"http:\/\/nullpointer.debashish.com\/wp-content\/uploads\/2006\/04\/rss.txt\" title=\"Wordpress RSS Importer\" target=\"_blank\">Click here<\/a> to view the modified WordPress RSS Importer.<\/li>\n<\/ul>\n<p>I hope this post helped you, do leave your comments here.<\/p>\n<p><font size=\"2\"><strong>Disclaimer:<\/strong> The information provided on this page comes without any warranty whatsoever. Use it at your own risk.<\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ok I admit that I never made a formal announcement about it, but this blog has now moved to its new home at http:\/\/nullpointer.debashish.com. If you are reading this, you are at the right URL. This blog used to be happily hosted at the excellent free service provided by the JRoller people. Roller is one [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":284,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3],"tags":[153,148,151,63,149,150,365,152,29],"class_list":["post-280","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-atom","tag-java","tag-on-the-web","tag-rss","tag-syndication","tag-syndication-and-feeds","tag-technology","tag-web-feed","tag-wordpress"],"jetpack_featured_media_url":"https:\/\/nullpointer.debashish.com\/wp-content\/uploads\/2006\/04\/rss_importer.jpg","_links":{"self":[{"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/posts\/280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/comments?post=280"}],"version-history":[{"count":2,"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/posts\/280\/revisions"}],"predecessor-version":[{"id":1460,"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/posts\/280\/revisions\/1460"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/media\/284"}],"wp:attachment":[{"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/media?parent=280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/categories?post=280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nullpointer.debashish.com\/wp-json\/wp\/v2\/tags?post=280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}