discuz怎么转wordpress,详细实操过程
因为原来的是Discuz! X3.4论坛,目前访问不了,但里面有两个栏目是比较有用的,一个付费栏目,另一个免费栏目,放在硬盘有点可惜,于是想把它转为wordpress的两个栏目。发现网上都没有详细过程,非常郁闷。于是自己实操了起来,成功地转为wordpress的两个栏目。请看这个案例网站:网创无忧。好了,废话不多说,请看详细步骤。(所使用到的文件都会在最后提供下载,省得你去找和编写)
1、准备工作和使用工具
a、准备工作。
原来的论坛是安装了VIP用户隐藏可见 1.4.8 ,所以请你准备搭建好一个新的wordpress和柒比贰主题2.8.0并安装好,并且主题里的等级制度设置成“永久会员”和“年会员”并启用。wordpress里的栏目设置成两个。(如果你想迁移多个栏目,自己增加分类目录)
b、使用工具
本地准备好phpMyAdmin和EditPlus编辑器,没有EditPlus的话可以看这里https://www.cnblogs.com/qianck/p/15098821.html,下面有下载地址,这个很重要哦,后面处理数据时候用正则表达式,会使用到它。
2、导出数据和处理数据
a、导出数据
(a1)、这里以其中的一个免费栏目为例。FROM_UNIXTIME格式化时间,使它和wordpress的时间一样,“fid=2”是你原来discuz的栏目ID,自己改成你自己的ID即刻,author='gaimy',这里“gaimy”改成你发布的用户。导出数据选 “PHP数组”生成pre_forum_post.php,如下图
SELECT pid, FROM_UNIXTIME( dateline, '%Y-%m-%d %H:%i:%s' ) AS mytime, subject, message
FROM pre_forum_post
WHERE fid =2 and author='gaimy'

(a2)、以下fid和autor同上面,但导出数据时候选默认的 SQL即可,生成pre_forum_post.sql后面要处理数据用。如下图
SELECT pid, message
FROM pre_forum_post
WHERE fid =2 and author='gaimy'

b、处理数据
b1、将(a1)导出的数据文件pre_forum_post.php放到你的新建好的wordpress的目录下,和我写好的这个old.php放在一起。old.php要设置编码,不然会乱码。如下
<?php
header("content-type:text/html;charset=utf-8"); //设置编码
require 'pre_forum_post.php';
$beishu = 23;
$strgo="";
echo("
INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES <br/>");
foreach ($pre_forum_post as $k=>$v) {
// echo "key=$k<br>";
/*
echo $v['pid']."<br>";
echo $v['mytime']."<br>";
echo $v['subject']."<br>";
echo $v['message']."<br>";
*/
//在sql替换它的值,这里付值为0
$v['message']=0;
$number = 20;
//$beishu=$beishu -1;
if ($k !== 0 and is_int(($k+1) / $beishu) ) {
$strgo=";";
}else {
$strgo=",";
}
if ($k !== 0 and is_int($k / $beishu)) {
echo("
INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES <br/>");
}
echo( "(".$v['pid'].", 1, '".$v['mytime']."', '".$v['mytime']."', '".$v['message']."', '".$v['subject']."', '', 'publish', 'open', 'open', '', '', '', '', '".$v['mytime']."', '".$v['mytime']."', '', 0, '', 0, 'post', '', 0)".$strgo."<br/>");
/*
foreach($v as $value){
//echo $v['pid']."<br>";
//echo $value."<br>";
}
*/
}
?>
b2、运行这个文件后,然后看看最后最下面的数据是否是逗号“,”,逗号就去掉它,分号“;”就不用理它,这里保存为s.sql文件,(这里写得不是很智能呢,手动改改比较快,懒得写代码,呵呵),方便后面导入数据用。如图

b3、将old2.php放在同一目录,不过这里“12”要改成你的博客栏目ID,如图。运行后保存为s2.sql,这里要注意那个逗号,像b2一样操作。
<?php
header("content-type:text/html;charset=utf-8"); //设置编码
require 'pre_forum_post.php';
$beishu = 23;
$strgo="";
echo("INSERT INTO wp_term_relationships ( object_id, term_taxonomy_id) VALUES <br/>");
foreach ($pre_forum_post as $k=>$v) {
if ($k !== 0 and is_int(($k+1) / $beishu) ) {
$strgo=";";
}else {
$strgo=",";
}
if ($k !== 0 and is_int($k / $beishu)) {
echo("INSERT INTO wp_term_relationships ( object_id, term_taxonomy_id) VALUES <br/>");
}
echo( "('".$v['pid']."', '12')".$strgo."<br/>");
/*
foreach($v as $value){
//echo $v['pid']."<br>";
//echo $value."<br>";
}
*/
}
?>

b4、将old3.php放在同一目录,不过这里“a:2:{s:3:\"key\";s:2:\"lv\";s:3:\"val\";a:2:{i:0;s:3:\"vip\";i:1;s:4:\"vip2\";}}”要改成你的VIP设置代码,如果那你不知道这串代码,可以发布一个文章,如图。运行后保存为s3.sql,这里也是一样注意那个逗号,像b2操作。


b5、将(a1)生成pre_forum_post.sql进行数据处理,打开 正则替换.txt这个文件,用EditPlus进行替换,这个很重要哦,请按照里面的步骤来替换即可,请复制多一份pre_forum_post.sql,避免出错后可以重新替换。“you85.com替换为you85.net”这里不用理它,

以下需要勾选正则表达式:
匹配:[img=600,0]
\[img=[0-9]*,[0-9]*\]替换为:<img class="aligncenter" src="
匹配:[/img]
\[\/img\]替换为:"/>
匹配:[size=4]
\[size=[0-9]*\]替换为空
匹配:[/size]
\[\/size\]替换为空
匹配:[color=red]
\[color=[A-Za-z]*\]替换为空
匹配:[/color]
\[\/color\]替换为空
匹配:[color=#333333]
\[color=#[0-9]*\]替换为空
\[color=#[a-z0-9]*\]替换为空
\[color=rgb\(.*\)\]替换为空
匹配:[font=Tahoma,]
\[font=[A-Za-z]*,*\]替换为空
匹配:[/font]
\[\/font\]替换为空
匹配:[backcolor=Yellow]
\[backcolor=[A-Za-z]*\]替换为空
匹配:[/backcolor]
\[\/backcolor\]替换为空
\[url=https://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?\]替换为[url]
以下不需要勾选正则表达式
[hide]替换为空
[/hide]替换为空
[align=center]替换为空
[/align]替换为空
[tr]替换为替换为空
[/tr]替换为替换为空
[td]替换为替换为空
[/td]替换为替换为空
[table]替换为替换为空
[/table]替换为替换为空
myhide替换为:content_hide
you85.com替换为you85.net
[b]替换为<strong>
[/b]替换为</strong>
[url=替换为:[url]
[url]替换为:<a href="
[/url]替换为:" rel="noopener" target="_blank">点我下载</a>
处理完上面的数据后,把这段替换掉如下:
-- --------------------------------------------------------
--
-- 表的结构 `pre_forum_post`
--
CREATE TABLE IF NOT EXISTS `pre_forum_post` (
`pid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`message` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

完成以上步骤,就把处理好的文件放进chuli这个文件夹下,然后可以进入phpMyAdmin你所在的博客数据库,直接导入这个pre_forum_post.sql表,如果你有多个栏目,就重复这个b5步骤。
b6、将处理好的s.sql、s2.sql、s3.sql导入到数据库,如果你有多个几个栏目,就将《2、导出数据和处理数据》这个类目重复做,做完后就,最后不要忘记了这几个sql
UPDATE wp_posts t1 left join pre_forum_post t2 on t1.pid = t2.ID SET t1.post_content = t2.message
还有统计总数:
SELECT count( * )
FROM `wp_term_relationships`
WHERE term_taxonomy_id =1

把“1632”复制下来,替换到到如下1632'中
UPDATE `mywp`.`wp_term_taxonomy` SET `count` = '1632' WHERE `wp_term_taxonomy`.`term_taxonomy_id` =1;
到这里大功告成!
总结:难的地方在于正则表达式的处理数据,所以要用到正则表达式,可以看看这个网站:https://www.runoob.com/regexp/regexp-syntax.html
而且输入sql语句也要加上编码header("content-type:text/html;charset=utf-8"); //设置编码,不然乱码。
附上找来的《正则表达式系统教程.CHM》,可以快速查阅。最后附属源代码自行测试,如果你有这方面的discuz转wordpress的需求,有偿给你转,可以联系我:QQ:1511923161
下载地址:https://url19.ctfile.com/f/18756719-656507857-27252a?p=7509 (访问密码: 7509)
discuz怎么转wordpress,详细实操过程的更多相关文章
- 超详细实操教程!在现有K8S集群上安装JenkinsX,极速提升CI/CD体验!
在2018年年初,Jenkins X首次发布,它由Apache Groovy语言的创建者Jame Strachan创建.Jenkins X 是一个高度集成化的 CI/CD 平台,基于 Jenkins ...
- Termux中安装gcc-7/gfortran-7实操过程,安装成功可以编译Fortran,c/c++
最近计算材料学的老师需要我们运行Fortran,又不想带电脑去教室.所以想起Termux了,于是就试试看这个宝贝能不能帮我的忙, 但是经过测试以后发现,clang只能编译c/c++那一类语言,不能编译 ...
- 白痴级教程,新手看过来,具详细实操文档 (word图片复制不过来,0202年了还有这样的不便利,下回研究一下,图片下次补)
一.环境配置(win10): 1.配置cmd的python环境为arcmap10.2 自带的python解释器(2.7.3)(自带arcpy库) 具体操作: 1我的电脑右击属性,打开 (选中path点 ...
- CS内网横向移动 模拟渗透实操 超详细
@Webkio 前言: 最近在跟朋友搞一些项目玩,所以最近没怎么更新内容接下来我将在虚拟中模拟内网多层靶场,进行内网渗透实验,超详细,适合小白.本文仅供网安学习,不可利用于未授权渗透工作中,否则后果自 ...
- 【强烈推荐,超详细,实操零失误】node.js安装 + npm安装教程 + Vue开发环境搭建
node.js安装 + npm安装教程 + Vue开发环境搭建 [强烈推荐,超详细,实操零失误] 原博客园地址:https://www.cnblogs.com/goldlong/p/8027997.h ...
- 【Social listening实操】作为一个合格的“增长黑客”,你还得重视外部数据的分析!
本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 在本文中,作者引出了"外部数据"这一概 ...
- 动手实操:如何用 Python 实现人脸识别,证明这个杨幂是那个杨幂?
当前,人脸识别应用于许多领域,如支付宝的用户认证,许多的能识别人心情的 AI,也就是人的面部表情,还有能分析人的年龄等等,而这里面有着许多的难度,在这里我想要分享的是一个利用七牛 SDK 简单的实现人 ...
- 动手实操(一):如何用七牛云 API 实现相片地图?
实操玩家: 在苹果手机上,我们只要打开定位服务,拍照后便能在相簿中找到地图,地图上显示着在各地拍摄的相片.网站上这种显示方式也并不少见,例如 Flickr.即将关闭的 Panoramio 等. 作为地 ...
- 决策树算法的Python实现—基于金融场景实操
决策树是最经常使用的数据挖掘算法,本次分享jacky带你深入浅出,走进决策树的世界 基本概念 决策树(Decision Tree) 它通过对训练样本的学习,并建立分类规则,然后依据分类规则,对新样本数 ...
随机推荐
- 轻量级多级菜单控制框架程序(C语言)
1.前言 作为嵌入式软件开发,可能经常会使用命令行或者显示屏等设备实现人机交互的功能,功能中通常情况都包含 UI 菜单设计:很多开发人员都会有自己的菜单框架模块,防止重复造轮子,网上有很多这种菜单框架 ...
- 眼球3D可视化解决方案——案例详解
医疗器械行业伴随着人类健康需求的增长而不断发展,是名副其实的朝阳行业,也是全球发达国家竞相争夺的领域. 一方面,行业门槛高,集中度低,外资企业挤占市场空间成了我国所有医疗器械行业入局者面临的共同挑战. ...
- BUUCTF-荷兰宽带数据泄露
荷兰宽带数据泄露 下载后发现是个BIN文件,之前也是做过类似的题目 RouterPassview打开BIn文件即可,搜索username或者password. 最后flag是username
- MySQL根据表前缀批量修改、删除表
注意:请先调试好,以及做好备份,再执行操作. 批量修改表 批量给前缀为 xushanxiang_content_ 的表增加一个 username 的字段: SELECT CONCAT('ALTER T ...
- Python爬虫+数据可视化教学:分析猫咪交易数据
猫猫这么可爱 不会有人不喜欢吧: 猫猫真的很可爱,和我女朋友一样可爱~你们可以和女朋友一起养一只可爱猫猫女朋友都有的吧?啊没有的话当我没说-咳咳网上的数据太多.太杂,而且我也不知道哪个网站的数据比较好 ...
- 使用 Cheat Engine 修改 Kingdom Rush 中的金钱、生命、星
最新博客链接 最近想学习一下 CE,刚好看见游戏库里装了 Kingdom Rush 就拿它来研究吧.这里写的东西,需要一些 Cheat Engine 的基础,可以看看教程. 这里主要是看写的注释,来理 ...
- ACM组合计数入门
1 排列组合 1.1 排列 \[A_n^m=n(n-1)(n-2)\cdots(n-m+1)=\frac{n!}{(n-m)!} \] 定义:从 n 个中选择 m 个组成有序数列,其中不同数列的数量. ...
- Django【查询】 基础回顾与深入应用
官方Django3.2 文档:https://docs.djangoproject.com/en/3.2/topics/db/queries/ 本文大部分内容参考官方3.2版本文档撰写,仅供学习使用 ...
- 阿里云有奖体验:如何通过ECS挂载NAS文件系统
实验简介 本实验提供CentOS系统ECS一台和NAS文件服务. NAS基于POSIX文件接口,天然适配原生操作系统,提供共享访问,同时保证数据一致性和锁互斥.它提供了简单的可扩展文件存储以供与ECS ...
- 螣龙安科携手51CTO:网络安全实战课程最新发布
一年一度的双十一狂欢节即将来临了,相信各大电商平台也正摩拳擦掌跃跃欲试中.回顾2019年,阿里巴巴双十一狂欢节的单日交易额就达到了2684亿人民币,创造了电商交易历史上新的记录. 当人们愉快地购买着自 ...