来源: 织梦DEDECMS转WordPress的教程方法汇总 – 奶爸建站笔记
织梦DEDECMS转WordPress的教程方法汇总
织梦dedecms是很多站长使用的国产CMS系统之一,近日织梦官方发表通知称商业用户需要购买授权费才能使用,费用为5800元/年,所以商用的站长最好更换掉其他免费开源的建站系统,例如WordPress,或者购买商业授权,毕竟国内的版权已经越来越严格了。
这里奶爸给大家总结几个可以方便把DedeCMS转移到WordPress系统的方法。
文章目录 [隐藏]
DedeCMS转WordPress方法一:通过RSS导出然后导入
这个方法的原理很简单,首先,在DedeCMS系统里面把全站的内容都导出为RSS格式,然后利用WordPress的导入功能,导入rss文件,就可以自动把之前的文章复制过来。
具体的大家可以参考下面这个步骤:
https://github.com/zyfcjtc/dedecms_to_wordpress
- 在dedecms的dede文件夹(后台文件夹)下找到
makehtml_rss_action.php
文件,对其进行编辑,找到代码:echo "完成所有文件更新!";
在其下面添加代码:
echo "<a href='/rss.xml' target='_blank'>浏览…</a>";
作用是在生成rss.xml文件后方便点击查看生成结果。
- 在dedecms的
include
文件夹下找到arc.rssview.class.php
文件,并对其进行编辑,找到代码:$murl = $GLOBALS['cfg_cmspath']."/data/rss/".$this->TypeID.".xml";
修改为:
$murl = $GLOBALS['cfg_cmspath']."/rss.xml";
作用是修改生成的
rss.xml
文件路径,让该文件保存在网站根目录再向下找到以下代码并将其删除:
$orwhere .= "And (arc.typeid in (".GetSonIds($this->TypeID,$this->TypeFields['channeltype']).") )";
进入后台——生成——更新RSS文件,把“单个类目最大记录数”改为全站的文章数量,然后点击“开始更新”,更新完成后,网站根目录下会生成一个全站rss.xml文件,可通过 http://网站域名/rss.xml
查看。 附:如果生成的rss.xml文件有错误,在根目录下的templets文件夹中的plus文件夹里找到rss.htm文件,对其进行编辑,找到代码:
<description><![CDATA[[field:description function='html2text(@me)'/]]]></description>
修改为:
<description><![CDATA[[field:description/]]]></description>
注:wordpress的编码是utf8,如果dedecms使用的不是utf8的,导入前请先转换编码为utf8。 具体如何查看: 找到common.inc.php
文件,里面的
$cfg_version = 'V57_UTF8_SP2';
$cfg_soft_lang = 'utf-8';
$cfg_soft_public = 'base';
即可知道是什么编码
导入织梦RSS步骤
- 织梦DedeCMS文章标题等基本数据导入wordpress站点 进入wordpress后台admin => 工具 => 导入 => RSS, 上传导入生成的织梦全站RSS文件。 导入过程中有可能会超时,重新上传RSS即可,不会重复导入。 注:我通过修改
rss-import.php
里的get_posts function
,实现了同时导入织梦文章id到wordpress. 具体请见这里: https://github.com/zyfcjtc/dedecms_to_wordpress/blob/main/get_posts.php - 导入织梦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
ALTER TABLE dede_archives ADD body longtext NOT NULL
然后再执行以下SQL语句把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
接着通过phpmyadmin导出功能把dede_archives数据表导出,然后再通过导入功能把该数据表导入wordpress网站使用的数据库中,使其与 wp_posts数据库处在同一个数据库里。
下面再次使用SQL语句把dede_archives的body导入到wp_posts上的post_content上,
以文章标题为匹配点(前提是文章标题都是唯一的)以ID为匹配点:UPDATE wp_posts,dede_archives SET wp_posts.post_content = dede_archives.body WHERE wp_posts.id = dede_archives.id
至此文章内容部分转换完成!
DedeCMS转WordPress方法二:数据库转换
大概思路就是把dedecms的数据库内容导入到wordpress,并且通过一些数据库命令操作,让本来dedecms的数据库转变为wordpress的,这个方法网上的教程都比较老,不推荐尝试。
DedeCMS转WordPress方法三:复制或者采集
这个方法相对来说是奶爸推荐大家操作的,因为最保险,只不过原网站数据量太大的话,操作起来非常费时间。
具体步骤:
- 先搭建一个临时的WordPress网站,教程参考:安装WordPress教程。
- 在WordPress后台,文章,文章分类里面设置好原网站(DEDECMS)的分类。
- 手动一篇文章一篇文章的复制或者使用采集软件(淘宝有帮忙写采集规则的店铺),把文章全部采集过来。
- 利用elementor这类型的构建器设计网站首页的效果。
- 域名切换为原dedecms网站的域名。
- 设置伪静态和301跳转规则,实现可以通过老网站的url跳转到新的url,减少SEO影响。
织梦转为WordPress后的注意事项
一、注意做伪静态和301跳转
虽然织梦和WordPress都是php的程序,但是他们的伪静态规则是不一样的,所以从dedecms转到WordPress之后,之前dedecms的文章页链接打开会报错,这就需要自己做301跳转规则来实现老dedecms网站的文章链接跳转到新WordPress网站的链接。
WordPress做301跳转的话也可以使用插件帮忙,例如Redirection
二、网站页面需要重新设计
不管用哪种方法把DEDECMS转换到WordPress,网站的页面设计都会发生变化的,所以网站文章全部复制过来之后,也需要自己从零开始设计网站的页面。新手的话推荐使用elementor构建器操作,或者直接花钱找人帮你设计,这是比较靠谱的方法。