WordPress

垃圾评论

垃圾评论已经成为本博客的一大硬伤,以前只是启用了验证码,但是这样评论的朋友非常不友好,也不方便,但是随着 TrackBack的垃圾评论越来越多,验证码变的一点没用了,只能寻求其他出路。 以前是用SK2反垃圾评论插件,不过还得装插件太麻烦,一直想启用 Akismet这个自带的插件,但是一直没有 WordPress API Key,这次终于下决心,用代理,跨过 GFW,注册了 WordPress,得到了 API Key,启用后 Akismet,世界终于清净了。 PS:Akismet 3月份到今天(20号)已经阻挡了1178条垃圾评论。

WordPress启用永久链接

新配的FreeBSD,花了3++小时安装了AMP系统,又开启了FTP,现在接下来就是安装BLOG系统了。 安装好后发现无法启动永久链接,想想可能是Apache的问题,于是在网上找了找,果然有结果 查看/usr/local/etc/apache22/httpd.conf文件,是否有 LoadModule rewrite_module libexec/apache22/mod_rewrite.so 注:这里FreeBSD里面的,默认已经有了,Linux系统可能会有点不一样 LoadModule rewrite_module modules/mod_rewrite.so 然后在该文件添加 Alias /blog /home/robin/blog   <Directory "/home/robin/blog"> Options Indexes FollowSymLinks DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> 其中,起作用的是Options FollowSymLinks和AllowOverride All,这样,就可以使用永久链接了,并支持伪静态。

屏蔽WordPress的日志修订功能

如果你还没有使用wordpress 2.6和以后的版本,那你就不用可以看这篇文章了,如果你已经升级到了2.6及以后的版本,并且又写过日志了,那请往下看。 wordpress 2.6开始,在文章保存的时候,会自动往数据库添加一个文章的副本,post_type为revision,如果已经有了,那就可以在phpmyadmin里执行如下SQL语句来删除 DELETE FROM wp_posts WHERE post_type='revision' 当然,这只是治标不治本的办法,如果以后再保存新的文章,又会出现,所以可以把这个功能关闭 修改wp-config.php文件 define('WP_POST_REVISIONS', false); 不过要添加在require_once(ABSPATH . 'wp-settings.php');这句话的前面。

代码高亮

在博客中展示程序代码是经常的事情,无奈wordpress的代码展示功能实在是太弱,而且会把代码中的空格和tab删除,有时候还会把半角双引号改成全角双引号。 目前支持代码高亮功能的插件有很多,经过比较,发现WP-Syntax无论在兼容性和支持语言种类方面都比较出色,有需要的朋友可以在这里下载。 插件启用后,在代码中直接使用<pre lang="程序语言" line="1">代码...</pre>就可以了,其中,line参数1表示显示行数,0表示不显示行数,目前支持的程序语言有abap, actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp-qt, cpp, csharp, css, d, delphi, diff, div, dos, dot, eiffel, fortran, freebasic, genero, gml, groovy, haskell, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp, lua, m68k, matlab, mirc, mpasm, mysql, nsis, [...]

对BLOG小小的改动

昨天导入了数据库,导致链接都错误了,于是,下决定改一改BLOG的永久链接结构。 经过比较,还是决定用post id+伪静态作为永久链接的结构,不过我的虚拟主机提供商不支持mod_rewrite功能,只好前面加了index.php,不过这也没什么关系,来访者大都也不会关心链接的结构。 添加了一个ALinks插件,能给文章中的关键字自动加上链接,这个功能不错。一个BLOG,如果没有链接,那几乎什么都不是。 决定以后DC要常伴身边,记录身边的每一点每一滴。今天错过了很可爱的一幕,没有记录下来,很可惜。

WordPress的Bug

晚上在研究wordpress的tags数据库,收获了不少,发现wordpress这种tags实现比较灵活,但是也有自己的问题,会造成无用tags无法回收。因为发现了这些没有被删掉的tags,于是就在phpmyadmin里手动删掉了,但是由于误操作,删掉了一些有用的东西,还好有备份,于是想到恢复。 我用的是wordpress自带的导出程序,于是清空数据库,然后导入。导入后发现tags全部不能用了,全部出错,于是只好手动在数据库里把tags全部删掉,然后把tags相关的数据都删掉。这应该是wordpress的bug,不知道会不会在新版本里修复。以后不准备再使用tags了,感觉和分类也差不多。还有一点,这样导入会导致文章的ID和以前不对,会影响流量。 看来以后备份还是要备份数据库。

反垃圾评论

独立建站,有其优势,也有其烦恼,比如垃圾评论。 虽然现在WordPress在反垃圾评论上已经做的很好了,但是还是挡不住层出不穷的垃圾评论,所以在NewBegin.cn还没有大范围遭到垃圾施诊攻击之前,防范于未然。 首先安装Anti Spam Image,下载地址是http://nio.infor96.com/archives/369 ,这个插件作用就是在评论的时候加一个图形验证码,安装也十分简单,上传到plugins目录,然后在后台启用就可以了。 其次,验证码一般可以防范大部分垃圾评论,但是不能防TrackBack,虽然可以禁用TrackBack,但是这样就没了独立建站的优势,可以安装Spam Karma 2,其使用的是很复杂的算法来验证是否为垃圾评论,在这里就不研究了。可能从http://wp-plugins.net/sk2/sk2_final.zip下载,在http://wp-plugins.net/sk2/l10n/下载中文包,一般只要下载.mo就可以了,然后把这两个都放到plugins文件夹,后台启用就OK。 然后,世界清静了。

终于解决了FF在撰写文章时TinyMCE的js错误了!

明天弄到凌晨3点半还没有解决,今天起来,继续,终于在官方网站找到了答案 修改/wp-includes/js/tinymce/tiny_mce_gzip.php: $encodings = explode(',', strtolower(preg_replace("/\s+/", "", $_SERVER['HTTP_ACCEPT_ENCODING']))); // Check for gzip header or northon internet securities if ((in_array('gzip', $encodings) || in_array('x-gzip', $encodings) || isset($_SERVER['---------------'])) && function_exists('ob_gzhandler') && !ini_get('zlib.output_compression')) { 替换为: if ((in_array('gzip', $encodings) || in_array('x-gzip', $encodings) || isset($_SERVER['---------------'])) && function_exists('ob_gzhandler') && !ini_get('zlib.output_compression') && get_settings('gzipcompression')) { $enc = in_array('x-gzip', $encodings) ? "x-gzip" : "gzip"; // [...]