Howdy! This importer allows you to extract posts from a LiveJournal XML export file. To get started you must edit the following line in this file (import-livejournal.php
)
define('XMLFILE', '');
You want to define where the XML file we'll be working with is, for example:
define('XMLFILE', '2002-04.xml');
You have to do this manually for security reasons.
If you've done that and you’re all ready, let's go!
previous page to continue.");
// Bring in the data
set_magic_quotes_runtime(0);
$datalines = file(XMLFILE); // Read the file into an array
$importdata = implode('', $datalines); // squish it
$importdata = str_replace(array("\r\n", "\r"), "\n", $importdata);
preg_match_all('|(.*?)|is', $importdata, $posts);
$posts = $posts[1];
echo '';
foreach ($posts as $post) :
$title = $date = $categories = $content = $post_id = '';
echo "- Importing post... ";
preg_match('|(.*?)|is', $post, $title);
$title = addslashes( trim($title[1]) );
$post_name = sanitize_title($title);
preg_match('|(.*?)|is', $post, $date);
$date = strtotime($date[1]);
$post_date = date('Y-m-d H:i:s', $date);
preg_match('|(.*?)|is', $post, $content);
$content = str_replace( array(''), '', addslashes( trim($content[1]) ) );
// Now lets put it in the DB
if ($wpdb->get_var("SELECT ID FROM $tableposts WHERE post_title = '$title' AND post_date = '$post_date'")) :
echo 'Post already imported';
else :
$wpdb->query("INSERT INTO $tableposts
(post_author, post_date, post_date_gmt, post_content, post_title,post_status, comment_status, ping_status, post_name)
VALUES
('$post_author', '$post_date', DATE_ADD('$post_date', INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE), '$content', '$title', 'publish', '$comment_status', '$ping_status', '$post_name')");
$post_id = $wpdb->get_var("SELECT ID FROM $tableposts WHERE post_title = '$title' AND post_date = '$post_date'");
if (!$post_id) die("couldn't get post ID");
$exists = $wpdb->get_row("SELECT * FROM $tablepost2cat WHERE post_id = $post_id AND category_id = 1");
if (!$exists) $wpdb->query("INSERT INTO $tablepost2cat (post_id, category_id) VALUES ($post_id, 1) ");
echo 'Done!
';
endif;
endforeach;
?>