花了一天时间,奋战10多个小时。
终于比较成功地把原博客的数据库转移到现在的wordpress上来!
感觉wordpress真的慢得可怜,在速度上肯定比之前的慢很多,不过功能上也满足了。
我之前以为要直接把mysql里wp的数据库挖出来看看,后来发现通过后台管理面板的导入工具,可以很方便得导入符合一定格式的xml文件。所以,我花了一点心思写了一段php代码,把之前的数据库内容导出来,以wp格式输出来。
不过不是很顺利,我发现wp的数据库里没有单个帖子访问量的统计,需要使用插件才能实现这个功能。这个比较棘手,我后来直接把原来访问量的数据扔掉了,有点可惜,呵呵~
php代码:
- <?php
- include_once 'conf.php';
- $buf = '<?xml version="1.0" encoding="UTF-8"?>
- <rss version="2.0"
- xmlns:excerpt="http://wordpress.org/export/1.0/excerpt/"
- xmlns:content="http://purl.org/rss/1.0/modules/content/"
- xmlns:wfw="http://wellformedweb.org/CommentAPI/"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:wp="http://wordpress.org/export/1.0/"
- >
- <channel>
- <title>Xiaoxia[PG]</title>
- <link>http://blog.xiaoxia.org</link>
- <description>= I am the one! =</description>
- <pubDate>Sat, 16 Oct 2010 21:51:19 +0000</pubDate>
- <generator>http://wordpress.org/?v=3.0.1</generator>
- <language>en</language>
- <wp:wxr_version>1.0</wp:wxr_version>
- <wp:base_site_url>http://blog.xiaoxia.org</wp:base_site_url>
- <wp:base_blog_url>http://blog.xiaoxia.org</wp:base_blog_url>
- <generator>http://wordpress.org/?v=3.0.1</generator>';
- $condition = " ORDER BY `ctime`";
- $query = "SELECT `topic`.*, `type`.`style`, `type`.`name` AS type_name from `topic`
- LEFT JOIN `type` ON `type`.`type_id`=`topic`.`type_id`
- $condition";
- $result = mysql_query($query) or die('Error, query failed' .$query . "<p>".mysql_error()."</p>");
- while( $row = mysql_fetch_array($result, MYSQL_ASSOC) )
- {
- $buf .= "<item>\n";
- if( $row['style'] ==0 ){
- $buf .= "<title>" . $row['title'] . "</title>\n";
- }else{
- $buf .= "<title>" . $row['name'] . "</title>\n";
- }
- $buf .="<link>http://blog.xiaoxia.org/?p=" . $row['topic_id'] . "</link>\n";
- $buf .="<pubDate>" . date("D, j M Y G:i:s +0800", strtotime($row['ctime']) ) . "</pubDate>\n";
- $buf .="<dc:creator><![CDATA[xiaoxia]]></dc:creator>\n";
- $buf .="<category><![CDATA[".$row['type_name']. "]]></category>\n";
- $buf .="<category domain=\"category\" nicename=\"".$row['type_id']."\"><![CDATA[".$row['type_name']. "]]></category>\n";
- $buf .="<guid isPermaLink=\"false\">http://blog.xiaoxia.org/?p=" . $row['topic_id'] . "</guid>\n";
- $buf .="<description></description>\n";
- if( $row['style'] ==0 ){
- $buf .="<content:encoded><![CDATA[" . $row['content'] . "]]></content:encoded>\n";
- }else{
- $buf .="<content:encoded><![CDATA[" . $row['title'] . "\n<!--more-->\n" .$row['content'] . "]]></content:encoded>\n";
- }
- $buf .="<excerpt:encoded><![CDATA[]]></excerpt:encoded>\n";
- $buf .="<wp:post_id>{$row['topic_id']}</wp:post_id>\n";
- $buf .="<wp:post_date>{$row['ctime']}</wp:post_date>\n";
- // $buf .="<wp:post_date_gmt>{$row['ctime']}</wp:post_date_gmt>\n";
- $buf .="<wp:comment_status>open</wp:comment_status>\n";
- $buf .="<wp:ping_status>open</wp:ping_status>\n";
- $buf .="<wp:post_name>{$row['name']}</wp:post_name>\n";
- if( $row['private'] )
- $buf .="<wp:status>private</wp:status>\n";
- else
- $buf .="<wp:status>publish</wp:status>\n";
- $buf .="<wp:post_parent>0</wp:post_parent>\n";
- $buf .="<wp:menu_order>0</wp:menu_order>\n";
- $buf .="<wp:post_type>post</wp:post_type>\n";
- $buf .="<wp:post_password></wp:post_password>\n";
- $buf .="<wp:is_sticky>0</wp:is_sticky>\n";
- $condition = " WHERE `topic_id`={$row['topic_id']} ORDER BY `ctime`";
- $query = "SELECT * from `comment` $condition";
- $result2 = mysql_query($query) or die('Error, query failed!' .$query . "<p>".mysql_error()."</p>");
- while( $row = mysql_fetch_array($result2, MYSQL_ASSOC) )
- {
- $buf .= "<wp:comment>\n";
- $buf .= "<wp:comment_id>{$row['comment_id']}</wp:comment_id>\n";
- if( $row['name']=='xiaoxia' || $row['name']=='Xiaoxia' || $row['name']=='小虾'){
- $buf .= "<wp:comment_user_id>1</wp:comment_user_id>\n";
- $row['name']='Xiaoxia';
- $row['mail']='xiaoxia@xiaoxia.org';
- }else{
- $buf .= "<wp:comment_user_id>0</wp:comment_user_id>\n";
- }
- $buf .= "<wp:comment_author><![CDATA[{$row['name']}]]></wp:comment_author>\n";
- $buf .= "<wp:comment_author_email><![CDATA[{$row['mail']}]]></wp:comment_author_email>\n";
- $buf .= "<wp:comment_author_url></wp:comment_author_url>\n";
- $buf .= "<wp:comment_author_IP>{$row['ip']}</wp:comment_author_IP>\n";
- $buf .= "<wp:comment_date>{$row['ctime']}</wp:comment_date>\n";
- $buf .= "<wp:comment_content><![CDATA[{$row['content']}]]></wp:comment_content>\n";
- $buf .= "<wp:comment_approved>" . (1 - $row['disabled'] ) . "</wp:comment_approved>\n";
- $buf .= "<wp:comment_type></wp:comment_type>\n";
- $buf .= "<wp:comment_parent>0</wp:comment_parent>\n";
- $buf .= "</wp:comment>\n";
- }
- $buf .= "</item>\n";
- }
- $buf .= '<item>
- <title>留言板</title>
- <link>http://blog.xiaoxia.org/?page_id=2</link>
- <pubDate>Sat, 16 Oct 2010 21:20:52 +0000</pubDate>
- <dc:creator><![CDATA[jessica]]></dc:creator>
- <guid isPermaLink="false">http://blog.xiaoxia.org/?page_id=2</guid>
- <description></description>
- <content:encoded><![CDATA[这里是留言板。]]></content:encoded>
- <excerpt:encoded><![CDATA[]]></excerpt:encoded>
- <wp:post_id>2</wp:post_id>
- <wp:post_date>2010-10-16 21:20:52</wp:post_date>
- <wp:post_date_gmt>2010-10-16 21:20:52</wp:post_date_gmt>
- <wp:comment_status>open</wp:comment_status>
- <wp:ping_status>open</wp:ping_status>
- <wp:post_name>留言</wp:post_name>
- <wp:status>publish</wp:status>
- <wp:post_parent>0</wp:post_parent>
- <wp:menu_order>0</wp:menu_order>
- <wp:post_type>page</wp:post_type>
- <wp:post_password></wp:post_password>
- <wp:is_sticky>0</wp:is_sticky>';
- $condition = " WHERE `topic_id`=0 ORDER BY `ctime`";
- $query = "SELECT * from `comment` $condition";
- $result2 = mysql_query($query) or die('Error, query failed!' .$query . "<p>".mysql_error()."</p>");
- while( $row = mysql_fetch_array($result2, MYSQL_ASSOC) )
- {
- $buf .= "<wp:comment>\n";
- $buf .= "<wp:comment_id>{$row['comment_id']}</wp:comment_id>\n";
- if( $row['name']=='xiaoxia' || $row['name']=='Xiaoxia' || $row['name']=='小虾'){
- $buf .= "<wp:comment_user_id>1</wp:comment_user_id>\n";
- $row['name']='Xiaoxia';
- $row['mail']='xiaoxia@xiaoxia.org';
- }else{
- $buf .= "<wp:comment_user_id>0</wp:comment_user_id>\n";
- }
- $buf .= "<wp:comment_author><![CDATA[{$row['name']}]]></wp:comment_author>\n";
- $buf .= "<wp:comment_author_email><![CDATA[{$row['mail']}]]></wp:comment_author_email>\n";
- $buf .= "<wp:comment_author_url></wp:comment_author_url>\n";
- $buf .= "<wp:comment_author_IP>{$row['ip']}</wp:comment_author_IP>\n";
- $buf .= "<wp:comment_date>{$row['ctime']}</wp:comment_date>\n";
- $buf .= "<wp:comment_content><![CDATA[{$row['content']}]]></wp:comment_content>\n";
- $buf .= "<wp:comment_approved>" . (1 - $row['disabled'] ) . "</wp:comment_approved>\n";
- $buf .= "<wp:comment_type></wp:comment_type>\n";
- $buf .= "<wp:comment_parent>0</wp:comment_parent>\n";
- $buf .= "<wp:comment_user_id>0</wp:comment_user_id>\n";
- $buf .= "</wp:comment>\n";
- }
- $buf .= '</item>';
- $buf .= ' </channel>
- </rss>';
- $file_pointer = fopen("wp.xml","w");
- fwrite($file_pointer,$buf);
- fclose($file_pointer);
- ?>
- OK
额,第一个啊,不错,但分类目录显示有问题
分类目录显示有什么问题? 我好像没发现到。
我这里显示,分类目录在下面,而不是在右边,你不会是故意的放下面的吧
不是啊。。分类目录是在右边栏的。你是使用哪个浏览器?要不要按Ctrl+F5刷新一下?
页脚的版权信息在IE8下成一坨了。。。
谢谢!这个我知道了,某些插件有冲突。已解决。
你应该早写的,不然我就不必一条一条地copy到wp了。杯具…
悲剧。。。
我用的IE9页脚部分都是一坨
我用的IE9页脚部分都是一坨
,还有我回复的时候他说我已经发布过相同的回复….
你的确发布了类似的回复 – -!
推荐 typecho, 这个比wp快多,代码也很多注释,不过主题少了点。
嗯,好东西! 不过我可不想再花时间去转移一次数据库啦。
不知道博主重阳有没有登山呢。
没~ 过一段时间再登。为啥这样问?
因为那是广告
噢。。。
没仔细看还以为说黄重阳呢。。。
要配新眼镜了…
不错啊,刚开BLOG不久就有广告商来串门罗.GAGA
同dump2的推荐。
WP确实是比较慢,有兴趣的话,可以试试Typecho。
嗯,好。
来看看。顺便带瓶酱油。
wordpress功能强大啊
楼上好巧~
恭喜乔迁。不知道小虾大牛是不是看雪的版主小虾?
恩,感觉焕然一新,很好啊!
突然发现我怎么成了活跃评论家了,呵呵。
的确焕然一新,不过速度变慢了好多。
从90ju而来….路过留脚印