目前织梦CMS需要授权的消息已发布一周了,根据目前织梦CMS的情况,对于简易的CMS结构可以考虑迁移,经过搜索,感觉下面的方法不错,原文章源于 :::奶爸建站笔记 ,此处仅做转载学习。
织梦dedecms是很多站长使用的国产CMS系统之一,近日织梦官方发表通知称商业用户需要购买授权费才能使用,费用为5800元/年,所以商用的站长最好更换掉其他免费开源的建站系统,例如WordPress,或者购买商业授权,毕竟国内的版权已经越来越严格了。
这里奶爸给大家总结几个可以方便把DedeCMS转移到WordPress系统的方法。
文章目录 [隐藏]
这个方法的原理很简单,首先,在DedeCMS系统里面把全站的内容都导出为RSS格式,然后利用WordPress的导入功能,导入rss文件,就可以自动把之前的文章复制过来。
具体的大家可以参考下面这个步骤:
https://github.com/zyfcjtc/dedecms_to_wordpress
makehtml_rss_action.php
文件,对其进行编辑,找到代码:echo "完成所有文件更新!";
在其下面添加代码:
echo "<a href='/rss.xml' target='_blank'>浏览…</a>";
作用是在生成rss.xml文件后方便点击查看生成结果。
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步骤
rss-import.php
里的get_posts function
,实现了同时导入织梦文章id到wordpress. 具体请见这里: https://github.com/zyfcjtc/dedecms_to_wordpress/blob/main/get_posts.phpALTER 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的,这个方法网上的教程都比较老,不推荐尝试。
这个方法相对来说是奶爸推荐大家操作的,因为最保险,只不过原网站数据量太大的话,操作起来非常费时间。
具体步骤:
这个方法是我爱水煮鱼分享的一个php脚本,需要自己服务器的SSH权限,具体方法如下:
1、下载php脚本文件。
2、打开脚本文件,编辑下图中的内容。
DEDECMS的数据配置参数,可以从DEDECMS的 data/common.inc.php 中获取。
3、把修改好的php文件上传到全新安装的WordPress网站根目录。
4、使用ssh命令运行php dedecms_to_wordpress.php
使用SSH的话,前提是你有自己的服务器或者VPS,虚拟主机是没有的,如果你没有VPS,参见2021年稳定靠谱有性价比的VPS推荐
有了VPS不会使用SSH参见:使用Xshell 6连接VPS教程_电脑登录vps的方法
运行后只需要等待自动执行即可。
一、注意做伪静态和301跳转
虽然织梦和WordPress都是php的程序,但是他们的伪静态规则是不一样的,所以从dedecms转到WordPress之后,之前dedecms的文章页链接打开会报错,这就需要自己做301跳转规则来实现老dedecms网站的文章链接跳转到新WordPress网站的链接。
WordPress做301跳转的话也可以使用插件帮忙,例如Redirection
二、网站页面需要重新设计
不管用哪种方法把DEDECMS转换到WordPress,网站的页面设计都会发生变化的,所以网站文章全部复制过来之后,也需要自己从零开始设计网站的页面。新手的话推荐使用elementor构建器操作,或者直接花钱找人帮你设计,这是比较靠谱的方法。
迅睿CMS也是一款国产CMS系统,官方网站注明了基于MIT开源协议发布,免费且不限制商业使用。所以用不习惯WordPress的站长也可以考虑。
迅睿CMS框架基于MIT开源协议发布,免费且不限制商业使用,是免费开源的产品,允许开发者自由修改前后台界面中的版权信息,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。
1、前往迅睿CMS官网下载源码并且安装到网站服务器
2、后台安装织梦DEDECMS数据转换扩展
3、填写织梦网站的数据库信息,进行转换
识别成功数据库后跟着操作即可,最后转换完毕,重新设计首页等页面即可发布。