{"id":8893,"date":"2005-04-26T01:38:32","date_gmt":"2005-04-25T22:38:32","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/2005\/04\/26\/nucleus2wordpress\/"},"modified":"2005-05-01T03:49:46","modified_gmt":"2005-05-01T00:49:46","slug":"nucleus2wordpress","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2005\/04\/26\/nucleus2wordpress\/","title":{"rendered":"nucleus2wordpress"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>Once I promised to release the script that I wrote while migrating from <a href=\"http:\/\/nucleuscms.org\">Nucleus CMS<\/a> to <a href=\"http:\/\/wordpress.org\">WordPress<\/a>.  Well, here it is.  But I doubt that you should start any serious celebrations, since this one is pretty messy and based very much on my setup.  Let me try to explain a couple of things to make it easier for you.<\/p>\n<p><strong>Expectations<\/strong> (read: <em>limitations<\/em>):<\/p>\n<ul>\n<li>This script expects that all your Nucleus tables have <code>nucleus_<\/code> prefix and all your WordPress tables have <code>wp_<\/code> prefix.  These are the defaults anyway, so I don&#8217;t think this is much of a problem.<\/li>\n<li>This script expects that all your Nucleus tables and all your WordPress tables are located in the same database.  And I really don&#8217;t see the reason to separate them anyway.  You&#8217;ll just delete Nucleus tables after migration.<\/li>\n<li>This script expects that your WordPress upload directory is <code>\/wordpress\/wp-content<\/code>.  This is again one of WordPress defaults, so I don&#8217;t think it will matter much.<\/li>\n<li>This script expects that inline images in your Nucleus posts were surrounded by the <code>&lt;div class=\"leftbox\"&gt;...&lt;\/div&gt;<\/code> and <code>&lt;div class=\"rightbox\"&gt;...&lt;\/div&gt;<\/code>.  If you had it differently, you&#8217;ll have to play with <acronym title=\"Regular expressions\">regexps<\/acronym>.<\/li>\n<li>This script expects that all authors who posted items in Nucleus have the same username (aka login) in WordPress.  Since I was and will be the only user posting items, that was pretty easy for me.<\/li>\n<li>This script expects that all categories that existed in Nucleus have the same name in WordPress.  It does not create these, since WordPress has a more advanced cateogory functionality (with nesting and stuff), so you&#8217;ll have to deal with this.<\/li>\n<li>This script does not create slugs (short-names-with-hyphens) for WordPress items, so if you are using post titles in your <acronym title=\"Permanent links\">permalinks<\/acronym>, they won&#8217;t work.  I was (and still am, for that matter) fixing this with a bunch of other tiny script which I won&#8217;t post here for their uglyness.  Find your own solution or don&#8217;t use post items in the permalinks.<\/li>\n<\/ul>\n<p><strong>Features<\/strong> (read: <em>things I cared about<\/em>)<\/p>\n<ul>\n<li>This script migrates Nucleus posts to WordPress.  NOTE: Nucleus uses two database\/forms fields for the post body and extended part (aka &#8216;Read more&#8217;).  WordPress has only body in database\/forms, but provides a <code>&lt;!--more--&gt;<\/code> tag to separate the post in parts.  My script is using this tag when combining Nucleus post parts into WordPress single post.<\/li>\n<li>This script can migrate either all posts or posts written after the certain date.<\/li>\n<li>This script migrates Nucleus comments to WordPress.  This script will use Nucleus members information (names, URL, email) and information that was provided via comment submission form smartly.  Well, as smart as works for me. :)  Comments are assigned to posts based on the post time AND post title.  This should be right most of the times.<\/li>\n<li>This script tries to be as verbose as possible during the migration process, so that you always know what it does.  (I consider this to be more of a feature than a limitation.)<\/li>\n<\/ul>\n<p>Once again, remember that this script wasn&#8217;t written to work for the general public, since the amount of customization that can be (and usual is) done to both Nucleus CMS and WordPress is enormous.  I wrote this script as a quick hack to help me with a <strong>one time<\/strong> task, so don&#8217;t expect much.  If things go wrong, check the regexp bits first, and the SQL bits second.<\/p>\n<p>Without further ado: <a href='\/wordpress\/wp-content\/nucleus2wordpress.perl' title='nucleus2wordpress.pl'>nucleus2wordpress.pl<\/a><\/p>\n<p>P.S.: If comments in the script appear strange or incorrect, consider the fact that I wrote them few days after I wrote and used the script itself&#8230;<\/p>\n<p><ins datetime=\"2005-05-01T03:49:34-03:00\">Update<\/ins>: If you used this script, you might be also interested in <a href=\"\/wordpress\/2005\/05\/01\/fixing-wordpress-slugs\/\">Fixing WordPress slugs<\/a> post.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Once I promised to release the script that I wrote while migrating from Nucleus CMS to WordPress. Well, here it is. But I doubt that you should start any serious celebrations, since this one is pretty messy and based very much on my setup. Let me try to explain a couple of things to make &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2005\/04\/26\/nucleus2wordpress\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">nucleus2wordpress<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"keyring_services":[],"class_list":["post-8893","post","type-post","status-publish","format-standard","hentry","category-general"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":7735,"url":"https:\/\/mamchenkov.net\/wordpress\/2004\/07\/30\/comment-control-owns\/","url_meta":{"origin":8893,"position":0},"title":"Comment control owns","author":"Leonid Mamchenkov","date":"July 30, 2004","format":false,"excerpt":"One of the greatest things about Nucleus CMS is the number of available plugins. And one of the best plugins available is Comment Control. With a simple interface I as an administrator of the site can either Allow or Deny each and every comment made by unregistered users. Usually, I\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8762,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/04\/01\/upgrade-of-nucleus-cms-to-version-32\/","url_meta":{"origin":8893,"position":1},"title":"Upgrade of Nucleus CMS to version 3.2","author":"Leonid Mamchenkov","date":"April 1, 2005","format":false,"excerpt":"I have just upgraded the site to Nucleus CMS version 3.2. I have also installed a few plugins. I am trying to get used to new post editor, so, please stay with me. Also let me know of any malfunctions that you can find. I looked around and checked and\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7444,"url":"https:\/\/mamchenkov.net\/wordpress\/2004\/04\/19\/nucleus-on-steroids\/","url_meta":{"origin":8893,"position":2},"title":"Nucleus on steroids","author":"Leonid Mamchenkov","date":"April 19, 2004","format":false,"excerpt":"I've upgraded my installation of Nucleus CMS to the eXtended Edition. There a bunch of fixes and improvements, as well as quiet a few preconfigured plugins and skins. I am still playing around with all this stuff, so don't be too surprised to find site broken and pieces of blog\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8511,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/01\/21\/nucleus-cms-upgraded\/","url_meta":{"origin":8893,"position":3},"title":"Nucleus CMS upgraded","author":"Leonid Mamchenkov","date":"January 21, 2005","format":false,"excerpt":"Originally I wanted to upgrade my mix of CMS setups to the newest version of BLOG:CMS. Unfortunately, after digging into it a bit, I realized that I don't want to do that just yet. There is no good upgrade path, because I would have to make a new installation, reconfigure\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8758,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/03\/31\/nucleus-bits\/","url_meta":{"origin":8893,"position":4},"title":"Nucleus bits","author":"Leonid Mamchenkov","date":"March 31, 2005","format":false,"excerpt":"In my recent bit on blogging software I mentioned a few shortcomings of Nucleus CMS. I am missing a better WYSIWYG post editor, sub-categories for posts and multipaged posts. I was suspecting that these needs might have been solved with plugins. I didn't check the availability of these plugins and\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9640,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/11\/03\/i-am-on-the-right-track\/","url_meta":{"origin":8893,"position":5},"title":"I am on the right track","author":"Leonid Mamchenkov","date":"November 3, 2005","format":false,"excerpt":"Either I am very lucky this month or I am doing something right. First, Google recruiter asked me if I was interested in working for them. And now I got another offer from someone else. This time though there is nothing major. A one time task to transfer a bunch\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/8893","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=8893"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/8893\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=8893"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=8893"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=8893"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=8893"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}