WordPress

Welcome to the WordPress b2evolution import utility. Before getting started, we need some information on your b2evolution database.

Below you should enter your b2evolution database connection details. If you're not sure about these, contact your host.

Database Name The name of the database you have b2evolution installed in.
User Name Your MySQL username
Password ...and MySQL password.
Database Host 99% chance you won't need to change this value.
B2 URL The URL Path to b2, such as "www.myblog.org".

Now select the b2evolution blog to import and provide information about your WordPress database.

b2evolution Blog The name of the b2evo blog you want to import.
Database Name The name of the database you have WordPress installed in.
User Name Your MySQL username
Password ...and MySQL password.
Database Host 99% chance you won't need to change this value.
Table Prefix If you run multiple WordPress installations in a single database, specify the correct prefix for the installation you want.

All right sparky, this is where the actual import takes place! Do you feel lucky today? :p

SQL : " . $sql); if ($result) { $row = mysql_fetch_array($result, MYSQL_ASSOC); $filepath_wp = $row['option_value']."/"; } $filepath_b2 = "http://".$b2_url."/media/"; echo "b2Evolution file path: ".$filepath_b2."
"; echo "WordPress file path: ".$filepath_wp."

"; // get authors for blog echo "Importing User records ...
"; $sql = "SELECT DISTINCT evo_users.* FROM evo_users INNER JOIN evo_blogusers " . "ON evo_users.user_ID = evo_blogusers.bloguser_user_ID WHERE " . "evo_blogusers.bloguser_blog_ID = ".$b2_blog." AND `user_login`<>'admin'"; $result = mysql_query($sql,$resB2) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); if ($result) { $cnt = 0; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $sql = trim(str_replace("\n","","INSERT INTO `". $wp_pref ."users` ". "(`user_login`,`user_pass`,`user_nicename`," . "`user_email`,`user_url`,`user_registered`,`user_status`," . "`display_name`)" . " VALUES ('".$row['user_login']."','".$row['user_pass']."','".$row['user_login']."','".$row['user_email']. "','".$row['user_url']."','".$row['dateYMDhour']."','".$row['user_status']."','". $row['user_login']."');")); $q = mysql_query($sql, $resWP) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); $id = mysql_insert_id($resWP); $arUser[$row['ID']] = $id; $cnt = $cnt + 1; } echo $cnt . " User record(s) imported!
"; } else { echo "No User records found!
"; } // get categories echo "Importing Category records ...
"; $sql = "SELECT * FROM evo_categories WHERE cat_blog_ID = " . $b2_blog; $result = mysql_query($sql,$resB2) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); if ($result) { $cnt = 0; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $sql = trim(str_replace("\n","","INSERT INTO `". $wp_pref ."categories` ". "(`cat_name`,`category_nicename`,`category_description`)" . " VALUES ('". mysql_escape_string($row['cat_name'])."','".mysql_escape_string($row['cat_name'])."','".mysql_escape_string($row['cat_longdesc'])."');")); $q = mysql_query($sql, $resWP) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); $id = mysql_insert_id($resWP); $arCat[$row['cat_ID']] = $id; $cnt = $cnt + 1; } echo $cnt . " Category record(s) imported!
"; } else { echo "No Category records found!
"; } // get entries for blog echo "Importing Entry records ...
"; $sql = "SELECT DISTINCT evo_posts.* " . "FROM evo_posts " . "INNER JOIN evo_categories ON evo_posts.post_main_cat_ID = evo_categories.cat_ID " . "WHERE evo_categories.cat_blog_ID = " . $b2_blog; $result = mysql_query($sql,$resB2) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); if ($result) { $cnt = 0; $cntCom = 0; $cntCat = 0; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { // author ID must be switched to new author ID $aid = $arUser[$row['post_author']]; // category ID must be switched to new category ID $cid = $arCat[$row['post_category']]; if (!$cid) { $cid = '1'; } // status mapping $stat = $row['post_status']; if ($stat == 'published') { $stat = 'publish'; } else if ($stat == 'deprecated') { $stat = 'publish'; } else if ($stat == 'protected') { $stat = 'private'; } else if ($stat == 'private') { $stat = 'private'; } else if ($stat == 'draft') { $stat = 'draft'; } // WordPress needs two timestamps: local and GMT (I wonder why...) $local_date = $row['post_datecreated']; $gmt_date_timestamp = strtotime($local_date); $gmt_date = gmdate("Y-m-d G:i:s ", $gmt_date_timestamp); $local_modified = $row['post_datemodified']; $gmt_modified_timestamp = strtotime($local_modified); $gmt_modified = gmdate("Y-m-d G:i:s ", $gmt_modified_timestamp); // WordPress saves the comment count in each post record. $sql = "SELECT COUNT(comment_ID) AS comment_count FROM `evo_comments` WHERE `comment_post_ID` = " . $row['post_ID']; $comment_res = mysql_query($sql,$resB2) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); $comment_row = mysql_fetch_array($comment_res, MYSQL_ASSOC); $comment_count = $comment_row['comment_count']; // update urls in the post content $post_content = $row['post_content']; $post_content = str_replace($filepath_b2, $filepath_wp, $post_content); $sql = trim(str_replace("\n","","INSERT INTO `". $wp_pref ."posts` ". "(`post_author`,`post_content`,`post_title`,`post_category`,`post_status`,`post_date`,`post_date_gmt`,`post_modified`,`post_modified_gmt`,`comment_count`, `post_name`)" . " VALUES ('".$aid."','". mysql_escape_string($post_content)."','" . mysql_escape_string($row['post_title'])."','". $cid."','". $stat."','". $local_date."','". $gmt_date."','". $local_modified."','". $gmt_modified."','". $comment_count."','". mysql_escape_string($row['post_urltitle'])."');")); echo "$sql
"; $q = mysql_query($sql, $resWP) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); $id = mysql_insert_id($resWP); $eid = $row['post_ID']; $cnt = $cnt + 1; // get comments for entry $sql = "SELECT evo_comments. * , evo_users.user_nickname, evo_users.user_url, evo_users.user_email " . "FROM evo_comments " . "LEFT JOIN evo_users ON evo_comments.comment_author_ID = evo_users.user_ID " . "WHERE evo_comments.comment_post_ID=" . $eid; $res = mysql_query($sql, $resB2) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); if ($res) { while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { // if the commentor was a user of the blog, nickname, email and url can be fetched // from user_nickname, user_email and user_site $checked_author = $row['comment_author']; $checked_url = $row['comment_author_url']; $checked_email = $row['comment_author_email']; if ($row['comment_author_ID'] != NULL) { // The author was a logged in user $checked_author = $row['user_nickname']; $checked_url = $row['user_url']; $checked_email = $row['user_email']; } // Wordpress needs two timestamps: local and GMT (I wonder why...) $local_time = $row['comment_date']; $gm_timestamp = strtotime($local_time); $gm_time = gmdate("Y-m-d G:i:s ", $gm_timestamp); // We need to translate the b2evo comment types to WordPress comment types // WordPress does not know linkback, so this script will map linkbacks to pingbacks $comment_type = $row['comment_type']; if ($comment_type == 'comment') { $comment_type = ''; } else if ($comment_type == 'trackback') { // No need to change it } else if ($comment_type == 'linkback') { $comment_type = 'pingback'; } else if ($comment_type == 'pingback') { // No need to change it } else { // This shouldn't happen. echo "Unknown comment type '" . $comment_type . "'! Defaulting to normal comment"; $comment_type = ''; } $sql = trim(str_replace("\n","","INSERT INTO `". $wp_pref ."comments` ". "(`comment_post_ID`,`comment_author`,`comment_author_email`," . "`comment_author_url`,`comment_author_IP`,`comment_date`," . "`comment_date_gmt`,`comment_content`,`comment_karma`, `comment_type`)" . " VALUES ('".$id."','" . mysql_escape_string($checked_author) . "','" . mysql_escape_string($checked_email) . "','" . mysql_escape_string($checked_url) . "','" . $row['comment_author_IP'] . "','" . $local_time . "','" . $gm_time . "','" . mysql_escape_string($row['comment_content'])."','". $row['comment_karma'] ."','" . $comment_type ."');")); $q = mysql_query($sql, $resWP) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); $cntCom = $cntCom + 1; } } // get categories for entry $cntTmp = 0; $sql = "SELECT * FROM evo_postcats WHERE postcat_post_ID=" . $eid; $res = mysql_query($sql, $resB2) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); if ($res) { while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { $cid = $arCat[$row['postcat_cat_ID']]; $sql = trim(str_replace("\n","","INSERT INTO `". $wp_pref ."post2cat` ". "(`post_id`,`category_id`)" . " VALUES ('" . $id . "','" . $cid . "');")); $q = mysql_query($sql, $resWP) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); $cntCat = $cntCat + 1; $cntTmp = $cntTmp + 1; } } if ($cntTmp == 0) { // No categories defined in b2evo - put it in the default category $sql = trim(str_replace("\n","","INSERT INTO `". $wp_pref ."post2cat` ". "(`post_id`,`category_id`)" . " VALUES ('" . $id . "','1');")); $q = mysql_query($sql, $resWP) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql); $cntCat = $cntCat + 1; } } echo $cnt . " Entry record(s) imported!
"; echo "     " . $cntCom . "Comment record(s) imported!
"; echo "     " . $cntCat . "Entry Category record(s) imported!
"; } else { echo "No Entry records found!
"; } mysql_close($resB2); mysql_close($resWP); echo "That's all folks!"; break; } ?>