一步步教你将Wordpress完美转为Typecho
上周末, 花了些时间将微博之博的程序从wordpress转到了typecho, 转换过程很顺利, 没有碰到什么问题. 之所以转程序, 是因为微博之博还有点访问量, 而这个访问量导致wordpress长期大量占用服务器资源. 不得已才转Typecho试试的.
转完以后, 才发现, 改改Typecho的代码, 装一些插件, 基本能让Typecho和wordpress功能一致. 当然wordpress那丰富的插件和主题资源是Typecho所不能比拟的.
废话不多说, 下面就是说说怎么转换具体步骤, 转换效果请看 微博之博:
1. 转换程序
实践证明, 下面过程也适用于最新版的wordpress转换, 我的wordpress就是3.4.1
首先安装typecho0.8程序,安装之前请确认你的服务器支持PHP5。
下载地址:http://typecho.org/download
wordpress转typecho插件下载:http://docs.typecho.org/plugins/wordpress-to-typecho
然后将已经安装在空间里的wordpress博客移动到子目录(文件和数据建议先做好备份,以免出错)。
然后再安装typecho程序,接着将插件Wordpress to Typecho上传到typecho\usr\plugins 目录,在后台启用插件后便可以在确认了数据库信息后将文章和评论转换过来。
由于程序目前还没有友情链接的功能,链接的数据不会转换,需要手动添加链接。
参考来源: wordpress 3.2 程序转typecho最新教程
2. 更换文章图片地址
wordpress的图片保存在 /usr/uploads/ , 而Typecho则是保存在 /usr/uploads. 这时我们除了需要把 /usr/uploads/ 所有图片文件转移到 /usr/uploads 外, 还需要在phpmyadmin中执行以下SQL, 以将wordpress图片路径替换成Typecho的:
UPDATE typecho_contents SET text = REPLACE(text,'http://xx.com/usr/uploads/','http://xx.com/usr/uploads/');
3. 如何在导航上显示目录分类
找到header.php中:
<li<?php if($this->is('index')): ?> class="current"<?php endif; ?>><a href="<?php $this->options->siteUrl(); ?>">首页</a></li>
<?php $this->widget('Widget_Contents_Page_List')->to($pages); ?>
<?php while($pages->next()): ?>
<li<?php if($this->is('page', $pages->slug)): ?> class="current"<?php endif; ?>><a href="<?php $pages->permalink(); ?>" title="<?php $pages->title(); ?>"><?php $pages->title(); ?></a></li>
<?php endwhile; ?>
替换为
<li<?php if($this->is('index')): ?> class="current"<?php endif; ?>><a href="<?php $this->options->siteUrl(); ?>"><?php _e('首页'); ?></a></li>
<?php $this->widget('Widget_Metas_Category_List')->to($category); ?>
<?php while($category->next()): ?>
<li<?php if($this->is('category', $category->slug)): ?> class="current"<?php endif; ?>><a href="<?php $category->permalink(); ?>" title="<?php $category->title(); ?>"><?php $category->name(); ?></a></li>
<?php endwhile; ?>
参考来源: http://forum.typecho.org/topic.php?id=2414
4. 首页显示摘要
找到index.php
将
<?php $this->content('阅读剩余部分...'); ?>
替换为
<?php $this->excerpt(); ?>
如果想精确控制摘要字数, 则
<?php $this->excerpt(200, '...');//200就是摘要的字数 ?>
参考来源: Typecho 首页显示摘要的小窍门
5. 首页显示缩略图
请安装这个插件: http://typecho.us/plugins/thumbnail.html
首次使用这个插件注意去手动创建下面的目录:
/usr/resources/cate/
/usr/resources/rand/
不然是无法显示下面的默认图片地址的:
/usr/plugins/Thumbnail/default.png
6. TypechoPing自动更新服务
请安装这个插件: http://typecho.us/plugins/typecho-ping.html
7. 显示文章浏览数
请安装这个插件: http://typecho.us/plugins/post-views.html
8. 博客sitemap功能
http://typecho.us/plugins/google-sitemap.html
9. 关键词内链工具
http://typecho.us/plugins/hight-light-tag.html
这个插件只能根据当前文章的tag找到文章的关键词并链接.
10. 如何反垃圾评论
http://typecho.us/plugins/comment-filter.html
按文中作如下设置即可:
设置非中文直接失败,以及带有http/com/net等敏感关键词,需要审核后显示
11. 将带WWW的网址转向不带WWW的网址
在.htaccess中加入:
RewriteCond %{HTTP_HOST} ^www.itwwt.com [NC]
RewriteRule ^(.*)$ http://itwwt.com/$1 [L,R=301]
比如我的完整.htaccess就是:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.itwwt.com [NC]
RewriteRule ^(.*)$ http://itwwt.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]</IfModule>
12. Typecho修改header.php自定义头部输出信息
<?php$this->header('keywords=&generator=&template=&pingback=&xmlrpc=&wlw=');?>
操作参数及方法说明
keywords:关键词
description:描述、摘要
rss1:feed rss1.0
rss2:feed rss2.0
atom:feed atom
generator:程序版本等
template:模板名称
pingback:文章引用
xmlrpc:离线写作
wlw:...
commentReply: 不输出评论回复js
注:等号(=)为空则不输出该项目,各个参数之间使用 “&” 连接。 如果需要自定义rss地址,只填上 rss2=feed订阅地址 即可。
最后, 推荐一个专门收集Typecho插件的网站: http://typecho.us/, 非常不错哦.
Typecho唯一遗憾的地方是: 由于使用人数不如wordpress广泛, 所以还没有哪个社会化评论为它开发评论插件. 如果用社会化评论的通用代码的话, 最新评论, 评论数量和评论定时保存到本地都是一个很大的问题. 当然, 如果你不用社会化评论而用Typecho默认评论功能的话, 这个问题就不是问题了.