日志标签 wordpress
将博客整合到维基
2月9日
通过 AJAX 技术,我们实现了将博客整合到维基当中。在群英汇的网站首页,你会发现新闻中的头几条来自于博客,你也会发现在首页的右侧的面板中显示6条最新的博客,点击标题即可查看相关博文。
显示三条新闻类别的博客条目的Wiki语法为:
<<jQuery(wordpress,query,http://blog.ossxp.com/rpc/,3,id=.blog-news,cat=12,showdate=prefix)>>
{{{#!wiki blog-news
[[http://blog.ossxp.com/|博客加载中]]...
}}}
在右侧面板中显示6条非新闻类别的博客条目的Wiki语法为:
<<jQuery(wp,query,http://blog.ossxp.com/rpc/,6,id=.blog-latest,cat=-12)>>
{{{#!wiki blog-latest
[[http://blog.ossxp.com/|博客加载中]]...
}}}

wordpress日志评论时间错误问题
1月14日
也许这个问题在你的服务器中不是常见的,但是偶然间还是会碰到的,它就像定时炸弹一样,说不定
下一秒钟在你的服务器上爆发了。
关于这个问题的解决过程真的不敢妄自菲薄,我先把问题叙述一下。这个是我们错误显示的截图:
当你看到那个醒目的”大约-1年”时,不知道你作何敢想。原来鼎鼎大名的Wordpress也有这样的
错误,其实细查下来才会发现这是当前主题和Wordpress内部函数共同酿成的苦果。
有了以往查找错误的经验,先查找“大约-1年前”出现的变量的地址,然后就可以按图索骥了,根
据变量你很快就能定位到“主题名/functions.php“文件中,在functions.php下的timeSince函数中
有这样一个变量:$since,
$since = current_time('timestamp',$wp_time_offset ? get_option('gmt_offset') : 0) - $startTimestamp;它的值为当前时间-发表评论的时间,你可以打一下这个
current_time('timestamp',$wp_time_offset ? get_option('gmt_offset') : 0),结果显示那条错误的评论和那些正确的评论取出的当前时间都是正确的,说明问题还不在于此。
继续往下找,在真正输出时间的地方,该主题又对发表评论的时间进行了处理,如下:
comment_date));?>
,
用echo命令输出的信息表明$comment->comment_date所取出的时间并没有错误,错误就发生
在strtotime,这个PHP内部函数上,PHP内部函数也会出问题?我的第一个反应就是这样。
我们看一下PHP的这个函数,下面是对该函数的说明:
The function expects to be given a string containing a US English date format and will try to parse that format into a Unix timestamp (the number of seconds since January 1 1970 00:00:00 UTC), relative to the timestamp given in now , or the current time if now is not supplied. This function will use the TZ environment variable (if available) to calculate the timestamp. Since PHP 5.1.0 there are easier ways to define the timezone that is used across all date/time functions. That process is explained in the date_default_timezone_get() function page.
但是在我们的环境中为什么会对一个时间点处理出错呢,这个原因我慢慢再道来。
我们已经把这个问题的解决方案提交到github上了,这个是问题的地址:
改动1,
改动2。改完了就再也不会出问题了
Wordpress中文昵称问题解决方法小结
1月12日
我的上一篇博客中大致介绍了Wordpress的基本工作原理,但是了解原理以后还有个问题一直困
扰着我,我们的日志上面凡是使用了中文昵称的地方都不能被查询到。真的令人挺苦恼,Wordpress
不是不支持中文链接,象<yourlink>/category/中文链接就能很好地跳转,但<yourlink>/author/
中文链接为什么就是404的错误。
最好的文档还是代码,前提是你对Wordpress的工作原理有了一定的了解之后。
阅读全部内容 »
wordpress工作原理
1月12日
WP初始化的过程:当你输入<yourlink>/wordpress对wordpress进行初始化时,wordpress默认会找
根目录下的index.php页面,看一下index.php页面。
<?php
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require('./wp-blog-header.php'); ---把/wp-blog-header.php包含进来
?>TSE 表情插件的改进:错误表情替换的解决方案
1月9日
TSE 插件全称:Tango Smileys Extended,是为 WordPress 提供表情扩展的一个插件。可以提供在博客编辑/评论编辑时通过点击插入表情(CTI)功能,并且将可用表情由内置的18个增加到202个。
错误的TSE表情扩展
这个插件在表情扩展时,会引起副作用,例如在王胜刚刚创建的Rails多语言支持的博文中,就遇到问题。
将
:onchange => 'this.form.submit()' %>
扩展为
nchange => 'this.form.submit()' %>
难道要因此禁用这个好用的插件?如果是商业软件可能只能如此,但是WP是开源软件,TSE插件也是开源的,为什么不自己解决呢?

CoSign-SSO插件已提交到Subversion版本库及github
1月6日
群英汇开发了 CoSign-SSO 插件,以便将博客整合到群英汇的统一认证架构中。
- 群英汇的员工,直接拥有博客帐号,并能够撰写博客;
- 任何在群英汇注册的用户 ,同时拥有博客相应帐号,默认权限为subscriber。
CoSign SSO 插件功能是:为 WordPress 增加了两个新的认证方式:单点登录认证及LDAP认证。其中单点登录认证是此插件开发的主要目的,LDAP认证只不过是副产品。
我们已经将该插件提交到 WordPress,有需要集中认证的用户,可以试用本插件
- 插件首页:http://wordpress.org/extend/plugins/cosign-sso/
- WordPress官方代码库: tsvn:http://plugins.svn.wordpress.org/cosign-sso/trunk/
- 群英汇在 github 上的代码库: http://github.com/ossxp-com/…
WordPress插件编程资源列表
1月6日
插件开发参考资料:
- 如何写一个插件
- 如何为插件增加管理员面板
- 新皮肤/主题开发
- API参考手册 (花几分钟,大概浏览一下即可,切勿深究!因为最好的文档就是代码本身)
- PHP代码规范
我看到的最有启发的一个相关博文:
这10个错误涵盖了代码规范、插件卸载、插件本地化、以及安全性等诸多方面,言简意赅,非常实惠。
汉化可以参考:
博客软件的选型:typo 还是 wordpress
1月6日
群英汇很多同事都有写博客的习惯,对于我来说则是新鲜事。虽然我也在 05 年玩过一阵子的 WordPress,当时的感觉:
- 就是玩具么,无法实现给每个人开一个独立的管理员帐号,只能是一个人管理(或少数人),其他人有编辑权限
- 当时的 WordPress 而且存在一个很明显的 bug,就是不能运行在我的64位的 Linux 中。虽然很容易找到问题所在:64位OS的字长和32位系统的字长不同导致的兼容性问题。
所以,这次公司博客选型,一开始完全没有听从几位同事的意见,要选择一个MVC架构的博客。Typo是我们第一个选择:
- Typo是一个基于ROR(Ruby on Rails)架构的博客软件
- 代码库在:http://wiki.github.com/fdv/typo/ 。Smart choice, I love git very much!
经过了几天的研究,完成了汉化,以及修改了几个bug 后,最终放弃了typo。除了功能少之外,typo 的博客编辑器非常不稳定,图片插入时灵时不灵。
选择了WordPress后,虽然有同事抱怨PHP写的代码太难维护了,逻辑和页面混杂在一起。为什么不用MVC?这让80后的程序员一头雾水,哈哈,这一点,我70后的有发言权,这是上个世纪的遗产。
PHP代码的历史问题,并没有阻碍 WordPress 成为博客软件的南坡腕(No.1),主要因为插件设计的太灵活了,用户太广大了,皮肤太丰富了,定制太灵活了。
就是这样,世界上又一个WordPress博客诞生了。

nchange => 'this.form.submit()' %>
最新评论