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

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

Windows 上使用 Github 手记

本准备玩一下 Google Code 上的 Git ,孰料 Google 提供的这个服务极其蛋疼,也许是本人才疏学浅吧,那个莫名其妙的 .netrc 文件就是不能让我免于在 pull/push 时输入密码,各种文档和解释也是含糊其辞,忍无可忍,纵然作为一名 Google 粉丝,我也只有投入 Github 的怀抱了(当然,该使用 SVN 的地方还是继续)。直接进入正题吧,首先是环境的搭建(本人使用的是 Git + msysgit + TortoiseGit + Putty 的组合):

1. 先下载所需要的安装程序:Gitmsysgit、TortoiseGit(32bit64bit)、Putty (以上均为官方下载链接,如担心有毒请自行Google);
2. 顺序安装以上下载的程序(先关闭所有的窗口,360会报不安全,信任就好),基本就是一路Next了,这个没啥好说的;
3. 注册一个Github帐号:https://github.com/plans,不必理会那些Plans,免费账号就可以创建无限制的开源项目了,只是容量小点(300M,不知道是每月还是总共,反正小项目来说是够用了);
4. 创建一个新的项目:https://github.com/repositories/new
5. 在开始菜单中找到Putty的文件夹,打开PuTTYgen(密钥生成器),点击生成,然后出来一个类似于这样的东西(公钥):
PuTTY密钥
点击保存私钥,随便起个名字随便放在哪(无视关于叫你填写密码的提示);将图中显示的公钥复制,打开Github中Account Setting页面里的SSH Public Key 选项卡,选择 Add another public key ,将刚才复制的公钥复制进去,随便起个名字,提交;
6. 在开始菜单中找到Putty的文件夹,打开 Pageant ,选择增加密钥,把刚才保存的那个后缀名为 ppk 的私钥导进去;
7. 在 Dashboard 页面的 Your Repositories 栏目下可以找到自己创建的那个项目,点击进去。能得到该项目的 Git 地址,比如我创建的 Shadowblue 地址就是:

找到你要放置项目的地方,右键选择 Git Clone , Url 处填入刚才那个地址,点击 “OK” ,项目就应该在本地成功建立了。

然后就是使用了:

1. 在本地项目目录中添加或进行改动以后需要先 Commit(你也可以用命令行,不过我这里示范时使用右键菜单中的 Git Commit -> “master” ),选择需要提交的改动,点击“OK”,这个时候项目的版本就在本地维护起来了;
2. 选择右键菜单中的 Git Sync .. ,在出现的界面中先选择 Pull,然后 Push,全部顺利的话,就会将本地的版本管理与服务器上的同步了。
3. 使用的时候稍显蛋疼的是每次开机或退出Pageant以后都要重新打开它并导入密钥以后,Git的验证才能通过,不像TortoiseSVN是自动保存的(可能是我没研究透彻吧)在TortoiseGit -> Setting -> Remote -> origin 下的 Putty 项中通过浏览加载先前保存的 ppk 文件并保存,Sync 的时候勾选 Autoload Putty key 选项,每次就会自动打开pageant载入key了;
4. 当服务器上的代码有变更以后,本地必须先 Pull 以后才可以 Push ,有效地避免了 SVN 上你刚上传一个东西,就被别人覆盖掉的坑爹情况,麻烦就麻烦一点吧,习惯就好;
5. 推荐使用 WinMerge 取代 TortoiseGit 自带的 Merge 工具,因为自带那个太蛋疼了。WinMerge 安装以后,在 TortoiseGit -> Settings 中,将 External Programs 下的 Diff Viewer 及 Merge Tool 中的 TortoiseMerge 改为 External ,下面填写 WinMergeU.exe 的路径即可,比如:

当然你如果觉得自带的 Merge 工具更好那就当我这条没说吧~
6. Have fun with Git ~

PS:这里不想讨论 SVN 与 Git 孰优孰劣的问题,有此兴趣的朋友请绕道。

基于json数据的jQuery无限级下拉菜单插件

自己写的一个小插件,基于jQuery,取得json数据以后可以生成一个下拉菜单,理论上是无限级的。

点击查看Demo

也可以通过SVN下载(由于代码无限修改中,所以暂不提供压缩包下载,还请见谅):

这个小插件目前只提供了最基本的线框样式,以后会逐步完善,相关实现方法及使用说明都会后续报道的。天冷不想打字,今天先到这了..

为你的评论框增加Ctrl+Enter提交功能

写完评论之后不能按Ctrl+回车提交,非要拿鼠标点一下,实在是痛苦的事情,不知道打消了多少懒人留言的积极性。
想给你的评论框添加这个功能么,那么就开始吧:

打开主题中comments.php文件,按Ctrl+F搜索“textarea”,然后在他的后面加上以下代码:

大概改完以后就是这么个样子:

保存提交,然后就有这个功能了,经我自己测试了,基本上市面上的浏览器都可以很好的支持,爽吗?

Have fun !

关于本Blog的页面载入效果

Zed童鞋向我询问本站载入效果的做法,由于比较繁琐,遂写到Blog中来,一来是这样比QQ等手段更有条理性,二来可以保留下来提高重用率。

废话不多说,现在开始:

1.结果
本效果完成后的效果就是你在打开本站每一个页面的时候会出现一个半透明遮罩一个loading画面然后页面载入完以后遮罩消失的效果。

2.思路
这个半透明遮罩首先被载入,这样他才能在一开始就出现,他上面有一张图片和一段文字告诉浏览者这是在loading,而不是笔记本快没电了或者什么;然后,页面的DOM就Ready了,这个时候为了验证各种库(比如我所使用的jQuery)载入完毕,CSS也下载完了,我们使用jQuery语句来使这个遮罩层隐藏起来,这个时候这个效果就完成了。 继续阅读“关于本Blog的页面载入效果”

Blogger中添加版权声明的方法

版权问题是目前一个比较热门的话题。hhalloyy在他的Blog中提供了一个供Wordpress用户方便使用的添加版权声明的办法,很不错,虽然这样并不能很实际的解决抄袭成风的问题,但至少是一个态度的表明。代码如下:

直接添加到帖子页或者其他你认为合适的页面就行了,无需改动什么,我这里想出一个专为Blogger的用户设计的代码,仅适用于Classic模式:

将这段代码放在帖子页中你认为合适的地方即可。