您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程

WordPress转PHPCMS数据库完美转换的方法

听寒2025-05-27phpcms教程已有人查阅

导读WordPress的访问速度不可恭维?那就试试能够生成纯静态的PHPCMS,保证能够让你的网页访问速度有一个质分飞升!为什么选择PHPCMS?见 选择PHPCMS的理由首先我们得分析出,转换过程中

WordPress的访问速度不可恭维?那就试试能够生成纯静态的PHPCMS,保证能够让你的网页访问速度有一个质分飞升!
为什么选择PHPCMS?见 选择PHPCMS的理由首先我们得分析出,转换过程中必须要面对的几个问题。
以下是我的分析
文章ID必须一致,因为大多数情况下文章的URL都是根据ID生成的,为了保证原文章可以继续访问,这一点必须做到。
文章URL必须一致,有些用WP的小伙伴用了postname来定义文章URL,也没有关系,在PHPCMS中也做一个URL自定义的字段(见 phpcms文章内容页如何自定义url),然后再根据我的方法转换下。
发布时间较好相近,你不希望用户看到你整个网站的文章都是同一天转过来的吧?所以要把WP的文章发布时间也转过来。
最重要的就是文章标题和内容了,这2样也搬过来后基本上转移就完成了。
数据库转换工作开始
进入WP后台,选择工具-导出,选择文章,状态为已发布,之后下载导出的文件,我们得到了一个xml文件,我把他命名为wp.xml
本来上面那一步我想通过数据库来导出的,但是WP数据库中存在草稿,最近版本,图像等乱七八糟的信息,虽然也可以通过设置条件来导出,不过总没有上面的方法来的方便吧。
现在WP的所有重要文章都已经导出来了,打开wp.xml,咱们需要把该文件的数据通过PHP保存到数组,好方便导入到PHPCMS的数据库中。但是读取该文件时有些数据是无法识别的,所以必须先做替换工作,使数据标准化。
我们所要的数据中 文章ID <wp:post_id> 内容 <content:encoded> 以及 发布时间 <wp:post_date> 是无法识别的,所以搜索 'wp:post_id'替换为'post_id' 搜索'content:encoded'替换为'content';搜索'wp:post_date'替换为'post_date',现在我们所需要的数据都已经符合标准了,开始撰写PHP代码
<?php
$doc = new DOMDocument();
$doc->load('wp.xml'); //读取xml文件
$items = $doc->getElementsByTagName( "item" );
foreach( $items as $item )
{
$post_ids = $item->getElementsByTagName( "post_id" );
$post_id = $post_ids->item(0)->nodeValue;
$titles = $item->getElementsByTagName( "title" );
$title = $titles->item(0)->nodeValue;
$contents = $item->getElementsByTagName( "content" );
$content = $contents->item(0)->nodeValue;
$post_dates = $item->getElementsByTagName( "post_date" );
$post_date = $post_dates->item(0)->nodeValue;
$links = $item->getElementsByTagName( "link" );
$link = $links->item(0)->nodeValue;
$arr[]=array($post_id,$title,$content,$link,$post_date);
}
print_r($arr);
?>
这时我们要的数据已经在浏览器中打印出来的,为了看到更清晰的结构,请在网页源代码模式下查看效果。
下一步,我们需要连接数据库,并按照PHPCMS的数据库入库规则,把对应的参数填进去。在?>之前加入以下代码
mysql_connect("localhost", "root", "");
mysql_select_db("pc");
mysql_query("set names 'utf8'");
for($i=0;$i<count($arr);$i++){
$id=$arr[$i][0];
$title=$arr[$i][1];
$content=$arr[$i][2];
$link=$arr[$i][3];
$time=strtotime($arr[$i][4]);
$views=rand(100,10000);
mysql_query("INSERT INTO `v9_news` (`id`, `catid`, `typeid`, `title`, `style`, `thumb`, `keywords`, `description`, `posids`, `url`, `listorder`, `status`, `sysadd`, `islink`, `username`, `inputtime`, `updatetime`) VALUES('$id', 6, 0, '$title', '', '', '', '', 0, '$link', 0, 99, 1, 0, 'phpcms', '$time', '$time')");
mysql_query("INSERT INTO `v9_news_data` (`id`, `content`, `readpoint`, `groupids_view`, `paginationtype`, `maxcharperpage`, `template`, `paytype`, `relation`, `voteid`, `allow_comment`, `copyfrom`) VALUES('$id', '$content', 0, '', 0, 10000, '', 0, '', 0, 1, '|0')");
mysql_query("INSERT INTO `v9_hits` (`hitsid`, `catid`, `views`, `yesterdayviews`, `dayviews`, `weekviews`, `monthviews`, `updatetime`) VALUES
('c-1-$id','6', '$views', 0, 0, 0, 0, '$time')");
}
PHPCMS的数据库入库规则,我已经在另一篇文章中详细分析过,见PHPCMS数据库入库模块制作教程上面有一个catid的字段,我的默认分类为ID6,根据自身情况自行修改。之后进入PHPCMS后台,把URL规则改成跟原先WordPress中的固定链接相同就完成了。

本文标签:

很赞哦! ()

相关源码

  • 帝国cms7.5游戏门户H5小游戏网站模板源码免费下载基于帝国CMS7.5开发的H5游戏门户模板,为在线游戏平台设计。支持PC端与移动端同步生成,打造完整的游戏娱乐体验平台。查看源码
  • 自适应LED照明外贸灯具灯泡灯具英文网站模板该外贸灯具网站模板专为LED照明、灯具出口企业定制,采用PbootCMS内核开发,提供高效建站方案。通过响应式设计和SEO优化能力,帮助企业低成本构建专业外贸展示平台。查看源码
  • (PC+WAP)pbootcms模板黑色门窗定制五金建材网站下载为门窗定制与五金建材企业设计的网站解决方案,采用PbootCMS开发,兼具专业展示与营销功能。黑色系设计突显工业质感,响应式布局确保在手机、平板等设备上的浏览体验。通过简单的内容替换,也可适用于建材贸易、家具定制等相关行业。查看源码
  • 帝国cms7.5奇闻异事末解之谜模板免费下载带数据本模板基于帝国CMS7.5系统开发,为神秘现象、未解之谜类主题网站设计。包含完整的PC端、移动端及百度MIP站同步生成功能,内置火车头采集规则模块,可快速采集目标站内容资源。整体设计风格神秘大气,符合主题定位。查看源码
  • (PC+WAP)中英双语户外用品帐篷装备pbootcms网站模板下载这款基于PbootCMS开发的中英文双语模板专为户外装备行业设计,适配PC和移动设备。模板采用现代化设计风格,突出户外产品的功能性和实用性,帮助企业建立专业的国际化展示平台。查看源码
  • (PC+手机)帝国cms7.5漫画图片连载网站源码免费下载本模板基于帝国CMS7.5深度开发,为漫画阅读类网站打造。整体设计风格贴合漫画行业特性,界面布局充分考虑漫画作品的展示需求,支持多种漫画阅读模式。模板采用响应式设计,能够自动适配PC端和移动端设备,为读者提供流畅的阅读体验。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐