标签 wordpress 下的文章

今天遇到一个朋友说,他的wordpress新安装的,出现如下问题:登录后空白,刷新又返回到登录界面;博客首页、分类页、文章页都显示正常,当发不了评论。

既然首页可以显示,排除了数据库问题,再去空间管理逛了圈也没发现什么,最后还是跑到搜索上在http://www.bianji.org/archives/3 这里找到了,方法是把wp-config.php的utf-8编码改为ANSI,覆盖回去,登录成功。不过我看了下我的blog的wp-config.php是utf-8编码的,为啥登录正常?这点上还是觉得有些奇怪,不过,遇到登录问题的大可以先尝试下修改编码,也就是打开文件,另存为,下面有个“编码”选项,选择保存即可。

这个标题有点大,扯多了足够扯篇论文出来,可我也不知写个啥标题比较好,就做个标题党凑合随便扯扯吧。

国内独立博客已知的有如下几款:pjblog、z-blog、asblog、bo-blog、bitrac、dutory、l-blog、lbs、sablog-x、oblog、f2blog、zjblog、zd-bs、c-blog等等等等,有些已经众所周知的停止了更新,有些一直存在却不为人所知,有些还有着很多的问题。其实,用户群比较多的只有3款:pjblog、z-blog、bo-blog,在兴起有一款asblog。

而这些程序基本都有一个共同点,就是共享的;而盈利模式也基本一样:google广告和代理IDC服务。为这个,我简单找了下关于wordpress的盈利模式,有那么几种:付费支持(付费模板、插件等)、专业wp顾问、合作IDC和母公司automattic的一定支持。在国内程序里,好像cms和bbs两块都多少涉足了付费支持一块,但blog圈里并没有完善的相关体系;至于IDC方面,wp显然选择的是和诸多空间商合作的模式,而国内喜欢自己去拿代理自己去运营;至于那个“专业wp顾问”,应该是指一些企业也用了wp程序,这运作上多少需要wp方面的支持,比如纽约时报。这块是国内blog根本没涉足的。至于公司支持就更不用说的空白了。

当程序稍有起色之后,开发者们多少就开始想为了如何赚钱来消耗脑细胞,而忽视了程序这个根基。就如某blog,版本未稳定,空间代理已经早早拿下。

不是说做共享的程序就不给你赚钱,但一个人的时间精力是有限的,同一时间请做好一件事。或许这也是wordpress自己不涉足IDC的原因之一吧,做好一件事。作为博客程序,需要做好的只是程序一块而已。国内的博客程序,给人一种不踏实的感觉;程序不踏实,人也不踏实;是通病。

我不是在这里支持wordpress而抵制国产,当我在决定换wordpress的时候,我感觉很无奈,因为国内已没有合适的程序给我用了,就如去寻找一个好的相册程序一样,除了已经关门的fpv,还有什么?

难道国内的技术真比国外插一大截?或许,但这里只是一个blog,需要的技术有多少?其实更大的,只是在心态。写个blog程序是为了什么,继续更新这个程序又是为了什么?当名气和金钱在眼前晃的时候,程序就变得不重要了;而恰恰忘记了一件重要事情,就是名气和金钱是依附程序而存在的。当然,一些国内blog的停止只是因为简单的个人问题,这种就不包含在内了;生活所迫,没办法的事。

有了这些心态,国内的blog开发者们就开始专注在更直接的赚钱和出名上,而忽视了blog的本身。较好的开发者只能维护其一般的bug修复和进一步的缓慢更新,而无法进行相关的推广服务,更没法做到让企业也选择自己,当然更做不到如wp那样潇洒地开个公司,至今还运作的看起来很顺溜。

于是,距离国外的大名气blog,国内的总差了那么一截,似乎很难很难追上。

还是忍不住做了这档事,把wordpress定了伪静态。在win主机下定义伪静态需要主机的支持,然后写httpd.ini。我不喜欢复杂的链接,什么年月日、什么tag、分类串着的,我也没写别名的爱好,我只是不爽那个 /?p 的默认,只要有个简单的数字编号即可。

看了众多网上的httpd.ini写法后,通过删减改成了自己需要的东西(其实里面具体啥意思都不明白)。在后台固定链接处写的是 /%post_id%

安装Dean's Permalinks Migration插件,在插件设置处写上:/?p=%post_id%,解决旧链接的失效问题(这样后,旧链接和新链接是并存都有效的)。

搞定。

唯一不解的是rss的连接有问题,但不知如何解决,幸好可以用默认的;另外是该配置不支持评论分页功能,建议在后台关闭该功能。

2009.5.25注:该ini还是不完善,有问题,分类和tag的伪静态无效。不建议使用。

2009.6.2注:折腾了几次后对httpd.ini已略有些了解,其会重新生成一个可以由自己决定的链接样式。对wp使用我依然遇到两个无法解决的问题,一个引用的链接不再跳转,而出现提示'I really need an ID for this to work.';分类翻页后回回到非分类的翻页。根据我所需功能,我只能确定以下几个写法没问题,但这样实在用处不大。
RewriteRule /feed /index.php/?feed=rss2
RewriteRule /rss.xml /index.php/?feed=rss2
RewriteRule /comments/feed /index.php/?feed=comments-rss2
RewriteRule /([0-9]+)/(feed|rdf|rss|rss2|atom) /index.php?feed=rss2&p=$1
RewriteRule /([0-9]+) /index.php?p=$1 [I]
RewriteRule /category/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp-feed\.php\?category_name=$1&feed=$2
RewriteRule /category/?(.*) /index.php?category_name=$1

这个模板只是基于原来的记事本模板修改而已,去掉了图片,把宽度定为百分比,采用了黄金分割61.8%,可适应大部分浏览器分辨率,适合文字多的博客。模板颜色布局仿Loveyuki's BLOG的灰色两栏,依然保留个人的嗜紫风格,简洁。Yahoo YSlow测试模板首页92分,分类页89分,正文页79分,主要是有google统计和gg ad两块扣分,总体得分还算不赖吧,嘿嘿。

这次修改最大的收获就是:修改css的时候一定要删除多余css文件,否则会发生莫名其妙的错位,让自己找不着北。至于为何如此,那是实难考察。

之前用的那个通紫的皮肤,看来看去都不知道自己是怎么想的;颜色太近,看来不清楚的累累的。好像当初换Dutory的时候随意改的,没想到还鬼使神差的往wp上移植。转来转去,还是觉得当年用了一年的记事本皮肤大方好看,还是移植过来吧,要不就此作废觉得可惜。

无论是wp移植到zblog还是zblog移植到wp,最麻烦的地方都是评论。zblog的评论ID不能改,涉及到js的回复判断等;而wp的评论有个回复效果,兼容也是麻烦事。兼容问题折腾了我大半天。

还是去掉了原来的侧栏,把本子居中了;保留了之前那个wp紫色皮肤的css浮动层,侧栏内容全部都绝对定位了。或许会留下个tag依然存在于底部吧。去掉了日志中间的广告,那个广告的感觉总是不太好。还是就依赖右边的广告几分钱美金吧。这段时间,移植比较忙,工作忙,游戏也忙(罪过)……现在要把游戏下放了,主要尽力还是回到网站上来才好。

一般网站,都会有两个地址,一个是有www的,一个是没www。而wordpree默认却只支持一个网址访问,一个访问读取不到css等等东西。今天就找了下方法,在wp-config.php的第一行的<?php后回车加入以下代码:
if ($_SERVER['HTTP_HOST']=='www.yyld.org'):
define("WP_SITEURL", "http://www.yyld.org");
define("WP_HOME", "http://www.yyld.org");
elseif ($_SERVER['HTTP_HOST']=='yyld.org'):
define("WP_SITEURL", "http://yyld.org");
define("WP_HOME", "http://yyld.org");
else :
define("WP_SITEURL", "http://tel.yyld.org");
define("WP_HOME", "http://tel.yyld.org");
endif;

不过我还是没怎么看明白这段代码的意思,反正目的是达到了。

现在spam泛滥,而且也越来越聪明,不会再在评论上说些广告的话,而把链接放在网址专栏里;也不会频繁对一个页面去刷……于是,这个反spam也越发艰巨。你说过滤嘛,断的id也是稀里哗啦的看着总觉得不痛快,不过滤嘛又不爽spam也想让blog看起来有人气一点,所以我就想,若不给网址加链接,没了反向和点击,这个spam就意义不大了吧?更何况还有修改评论的选择。在wordpress2.7里我没找到评论的相关标签,在<span style="text-decoration: underline;">江海客</span>的帮助下,知道可以修改comment-template.php。

找到:return apply_filters('get_comment_author_link', $return);

把上面那句对应该为:$return = "$author $url";,$url标签默认是不带链接的,这样,在评论这块就不会链接地址了。^_^

PS:虽然对正常访问者显得似乎不太友好,但也颇为是无奈之举。但是请相信如果你的评论有价值的话,还怕别人不直接打开网址吗?

wp 评论rss错误修改:feed-rss2-comments.php

禁用自动保存插件:disable-autosave.php

禁用自动保存修改:wp-config.php

增加浮动js效果

增加sitemap插件

增加tag相关日志插件

屏蔽英文标点自动转换为中文:wp-includes/formatting.php
// static strings
//$curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
//$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

评论网址单独列出

这个是我从网上搜来的方法,但似乎对wp 2.7有点不一样,也方便自己周围的朋友需要,重新整理一下。

以官方的默认蓝色脑袋的那个模板来说,修改模板里的index.php文件,找到:

<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
改为:
<?php if (have_posts()) : ?><?php $postcnt = 1; ?><?php while (have_posts()) : the_post(); ?>
找到<?php endwhile; ?>,在其前面插入:
<?php if ($wp_query->current_post == 0) : ?>广告代码<?php endif; ?>
完成。 如果想在第二篇或第三篇后插入,就把上面的代码前面部分改为: