织梦DedeCMS转换WordPress方法

1. 文章标题等基本数据导入织梦的文章标题、正文和栏目分别存放在三个不同的表上,但WordPress把文章标题和正文放在一个表上,栏目放在另外一个表上。为了简化后面的工作,第一步我首先把织梦的全站RSS文件(rss.php)保存下来,然后使用WordPress自带的RSS导入该文件。这样就可以使WordPress在wp_posts上生成文章标题,在dede_terms上生成文章目录,并匹配起来。通过RSS导入,wp_posts上还导入了文章的摘要、日期、自定义网址等数据。但RSS导入不会导入全文。

 2. 文章全文导入织梦数据库的文章全文储存在dede_addonarticle表上的body里,我们要把这个body的内容转到Worpress数据库里wp_posts表上的post_content里。这个转换,需要使用一个桥梁——那就是dede_archives,即dede_addonarticle上body的内容先转到dede_archives上,再从dede_archives上再转到wp_posts上的post_content里。这两次转换的匹配点,分别是织梦里的文章id,以及Wordpress里已经导入了的文章标题(这与织梦里的文章标题是一样的)。具体步骤如下:进入phpMyAdmin,在织梦数据库里的dede_archives表上,添加一个列,命名为body,然后用UPDATE命令把dede_addonarticle上的全文(body)导入到dede_archives的body上,以dede_addonarticle上的aid和dede_archives上的id为匹配点: UPDATE `dede_archives`,`dede_addonarticle`  SET `dede_archives`.`body`= `dede_addonarticle`.`body`  WHERE `dede_archives`.`id` = `dede_addonarticle`.`aid`   接下来把整个dede_archives表导入到WordPress的数据库上,使其与wp_posts同在一个数据库下。再次使用UPDATE命令把,把dede_archives上的body导入到wp_posts上的post_content上,以文章标题为匹配点 (前提是,你的文章标题都是唯一的): UPDATE `wp_posts`,`dede_archives`  SET `wp_posts`.`post_content`= `dede_archives`.`body`  WHERE `wp_posts`.`post_title` = `dede_archives`.`title`   

 3. 文章点击数导入 在WordPress上安装一个叫Simple Hit Counter的Plug-in,这样数据库里就出现一个叫wp_hitcount的表。在wp_posts增加一个叫hits的column,然后把dede_archives上的点击数click导入到wp_posts的hits上,仍然以标题为匹配点。最后把wp_posts的hits导入到wp_hitcount的hits上,这次以wp_posts的ID和wp_hitcount的pid为匹配点。

  • 方法二:(源自网络)

织梦后台生成更新RSS文件是按照网站栏目生成告诉用户每个栏目的RSS订阅地址,保存在data目录下,按分类生成很适合栏目或栏目文章较多的dedecms站点,小型CMS站点偏向于生成全站的RSS文件,下面的方法可以实现dedecms只生成一个rss.xml文件夹保存于网站根目录下。

操作方法:

1、在dedecms的dede文件夹(后台文件夹)下找到makehtml_rss_action.php文件,对其进行编辑,找到代码:

1echo “完成所有文件更新!”;

在其下面添加代码:

1echo “<a href=’/rss.xml’ target=’_blank’>浏览…</a>”;

作用是在生成rss.xml文件后方便点击查看生成结果。

2、在dedecms的include文件夹下找到arc.rssview.class.php文件,并对其进行编辑,找到代码:

1$murl = $GLOBALS[‘cfg_cmspath’].”/data/rss/”.$this->TypeID.”.xml”;

修改为:

1$murl = $GLOBALS[‘cfg_cmspath’].”/rss.xml”;

作用是修改生成的rss.xml文件路径,让该文件保存在网站根目录

再向下找到以下代码并将其删除:

1$orwhere .= “And (arc.typeid in (“.GetSonIds($this->TypeID,$this->TypeFields[‘channeltype’]).”) )”;

3、进入后台——生成——更新RSS文件,把“单个类目最大记录数”改为全站的文章数量,然后点击“开始更新”,更新完成后,网站根目录下会生成一个全站rss.xml文件,可通过http://网站域名/rss.xml查看。

附:如果生成的rss.xml文件有错误,在根目录下的templets文件夹中的plus文件夹里找到rss.htm文件,对其进行编辑,找到代码:

1<description><![CDATA[[field:description function=’html2text(@me)’/]]]></description>

修改为:

1<description><![CDATA[[field:description/]]]></description> 

法,操作前请备份好网站数据。

1、DEDECMS文章标题等基本数据导入wordpress站点

织梦CMS的文章标题、正文和栏目分别存放在三个不同的数据表中,而wordpress则把文章标题和正文放在一个数据表,栏目(分类目录)放在另一个数据表中,为了简化后面的工作,第一步是制作生成织梦CMS的全站RSS文件

然后通过wordpress程序后台——工具——导入——RSS,上传导入生成的织梦全站RSS文件。

这样就可以使wordpress在wp_posts数据表上生成文章标题,在wp_terms数据表上生成文章分类,并匹配起来,此外通过RSS导入,wp_posts数据表上还导入了文章摘要、日期、自定义网址等数据,但是RSS不会导入全文!

2、导入织梦CMS文章全文到wordpress站点

织梦文章的数据存储在dede_addonarticle数据库的body字段中,现在需要把body字段的内容转到wordpress数据库的wp_posts数据库的post_content字段里。

这个转换需要使用一个桥梁——那就是dede_archives数据表,即dede_addonarticle上body的内容先转到dede_archives上,再从dede_archives转到wp_posts的post_content里。这两次转换的匹配点,分别是织梦里的文章id,以及Wordpress里已经导入了的文章标题(这与织梦里的文章标题是一样的)。

具体的操作步骤如下:

进入phpmyadmin,选择dedecms网站使用的数据库,在SQL输入框中执行以下SQL语句,在织梦数据库的dede_archives表上,添加字段body:

1ALTER TABLE dede_archives ADD body longtext NOT NULL

然后再执行以下SQL语句把dede_addonarticle数据表中的body字段内容导入到dede_archives的body字段,语句以dede_addonarticle的aid和dede_archives的id为匹配点:

123UPDATE dede_archives,dede_addonarticleSET dede_archives.body = dede_addonarticle.body  WHERE dede_archives.id = dede_addonarticle.aid

接着通过phpmyadmin导出功能把dede_archives数据表导出,然后再通过导入功能把该数据表导入wordpress网站使用的数据库中,使其与wp_posts数据库处在同一个数据库里。

下面再次使用SQL语句把dede_archives的body导入到wp_posts上的post_content上,以文章标题为匹配点(前提是文章标题都是唯一的):

123UPDATE wp_posts,dede_archives  SET wp_posts.post_content = dede_archives.body  WHERE wp_posts.post_title = dede_archives.title

至此文章内容部分转换完成!

3、织梦CMS文章点击数导入wordpress网站

织梦CMS的文章有点击数(即是文章的阅读数),不导入wordpress怪可惜。

在wordpress上安装Simple Hit Counter插件,启用后数据库里会生成wp_hitcount表,在SQL输入框中执行以下语句在增加hits字段:

12ALTER TABLE wp_posts ADD hits int(10) NOT NULL

执行以下SQL语句,把dede_archives上的点击数click导入到wp_posts的hits上,仍然以标题为匹配点:

1234UPDATE wp_posts,dede_archives  SET wp_posts.hits = dede_archives.click  WHERE wp_posts.post_title = dede_archives.title

最后执行以下SQL语句把wp_posts的hits导入到wp_hitcount的hits上,这次以wp_posts的ID和wp_hitcount的pid为匹配点:

123UPDATE wp_posts,wp_hitcountSET wp_hitcount.hits = wp_posts.hitsWHERE wp_hitcount.pid = wp_posts.ID

至此点击数转换完成,然后在模板中添加Simple Hit Counter插件调用代码即可。

附:我习惯使用wp-postviews插件,所以我是把织梦CMS文章点击数转换为wp-postviews插件的浏览数。但是由于该插件需要文章有浏览数之后才会在数据库中生成meta_key的值,因此需要先在wp_postmeta表中添加对应的meta_key的值。

执行以下SQL语句,把文章ID导入wp_postmeta中的post_id字段:

12INSERT INTO wp_postmeta(post_id) SELECT ID FROM wp_posts

执行以下SQL语句,把上面添加的post_id中的meta_key字段的null设置为views值:

12UPDATE wp_postmeta SET meta_key=‘views’ WHERE meta_key IS NULL

执行以下SQL语句,把上面添加的post_id中的meta_value字段的null设置为0值:

12UPDATE wp_postmeta SET meta_value=‘0’ WHERE meta_value IS NULL

然后再把wp_posts的hits导入到wp_postmeta数据表中的meta_key字段的值views对应的meta_value,SQL语句如下:

123UPDATE wp_postmeta,wp_postsSET wp_postmeta.meta_value=wp_posts.hitsWHERE  wp_postmeta.post_id=wp_posts.ID AND meta_key=‘views’

相关新闻

发表评论

咨询客服
咨询客服
返回顶部