WP 主题中添加 AJAX 响应

为 WordPress Theme 添加可在匿名(未登录)情况下访问的 AJAX 响应,网上资料很凌乱,遂自行记录过程如下。

1. 首先确保主题中有 jQuery 库(似乎这已是各小型网站的标配),没有的话可以在主题 header.php 文件中添加:

2. 然后需要在页面中插入当前网站的 URL 信息,这个信息可以通过如下代码:

如此一来系统将自动在页面中返回 admin-ajax.php 的网络路径了:

于是在将来自己写的 JS 代码中,只需要调用 MyAjax.uri 就能获取到 admin-ajax.php 文件的地址了;

3. 在 function.php 中添加准备用来响应 ajax 请求的 function:

4. 然后开始添加 JS 代码,发送 AJAX 请求,这个放在主题的相应 js 文件里面就行了:

code on Gist

部署完毕,更多内容请参见官方文档

ShadowBlue 0.9 Beta

ShadowBlue 是我 2010 年 1 月份制作的一个 WordPress 主题,经过了这些年的修修补补,最近终于决定捯饬一下准备上传到 WordPress Index 了。主题截图

主题建了这么久,也积攒下来一大堆 Bug,刚开始做主题的时候编码水准比较幼稚,所以连修复 Bug 加重构一并做了,还对 IE 上的效果进行了一定的简化(计划逐渐实现在 IE6 上的裸奔);逐步完善了后台中的主题设置功能,基本已可实现普通的功能选择不需要修改源码的效果。

上传主题到官网上挺麻烦的,要按照规矩 Debug 代码,很多方法和语句什么的都要重构,源码里还不能用中文,需要全部改英文再拿 PO 文件做 Localization 本地化,一大堆麻烦事。

功夫不怕有心人,一项项地改,总能把问题解决,于是乎,ShadowBlue 0.9 Beta 隆重出炉,源码已上传至官网,坐等审核中。

感兴趣的朋友可以移步 开发页面 一看究竟,心急的朋友可以直接访问 项目页面

PS:ShadowBlue on wordpress.org is almost there ~
坑爹的 wordpress.org ,提出了很多我无法接受的要求,比如只能使用 wordpress 自带的 jquery 库等,还有很多规范化的要求会增加过多的工作量,所以提交到官网的计划正式宣告无限期搁置了。现阶段还是老老实实 host 在 github 上好了。

在 WordPress 中为搜索用户提供向导

本站很多流量都来源于搜索关键词“糖醋排骨”,我想大部分人搜索这个词应该是想要学做菜的,于是便建立了一个专页,可是在搜索引擎中,此关键词与本站相关的结果链接指向首页,所以我有必要将这些流量导入到正确的流量中,旋即我就为搜索用户提供了一个向导功能。

功能还算简单,当用户通过搜索引擎来到本站后,获取其搜索关键词:如果关键词是“糖醋排骨”,则跳转到专页,如果是别的,则在页面顶部提供一个更多内容的搜索链接。

有一个 WP 插件名叫 Landing Sites 也是干这个的,不过好像很久没有更新了,而且是老外写的不太符合天朝的搜索引擎市场状况,再加上这功能并不复杂,所以也就不装插件自己写好了,以下是具体实现的方法:
继续阅读在 WordPress 中为搜索用户提供向导

在 Windows 上使用 YUI Compressor

我们经常可以看到网上提供的各种 JS 库会提供压缩版(主要压缩 JS 和 CSS),他们其实就是用 Closure Compile 或者 YUI Compressor 等压缩工具压缩过的。我用过 Closure Compile 和 YUI Compressor,感觉压缩后大小差不太多,但是 YUI 兼容性更好一些,所以本文只介绍 YUI Compressor。我们将要实现的是,无需输入命令,直接用鼠标操作进行文件的压缩。参照以下步骤:

1. 安装 JDK(下载) 并 配置 JAVA_HOME 环境变量
2. 下载包含有 YUI Compressor 的 Windows 安装包(最新版下载 | 备用下载);
3. 解压,打开 install.cmd (Window Vista/7/8 及以上请使用管理员权限打开),安装成功;

yuicompressor 文件夹内有一 test.js 和一 test.css,可以在文件上点击鼠标右键,会出现 Process with YUICompressor 的选项,点击看看效果吧。Enjoy~

QQ 旋风霸占 443 端口问题

在 Windows 上既使用 QQ 旋风又使用 XAMPP 的朋友,可能也遇见过 QQ 旋风打开之后 Apache 无法启动的情况。

搜索了一下,原来是霸道的 QQ 旋风把 443 端口霸占了(via),之前各种下载软件霸占 80 端口这问题倒是好解决,把软件里面的 BT 端口换一个就成了,可是这个 443 端口,貌似是固定的,反正在 QQ 旋风里面是改不了,而为了离线下载又不能换用别的下载软件(屌丝是没钱冲会员的),如此一来只有修改 Apache 了。

443 端口一般是用来走 SSL 的,由于 XAMPP 只是本地测试用,SSL 关掉就是了:
1. 打开路径 path-to-xampp\apache\conf\httpd.conf;
2. 搜索 ssl ,大概在第 125 行,把那行代码注释掉,以下是修改后的:

3. Apache 可以打开了

Apache 打开了,继续苦逼地工作吧~