现在大部分的 WordPress 主题和插件都有后台设置页面, 为主题或插件添加自定义的一些功能. 这些设置会将被保存到数据库中. 然后在主题或插件中使用它们. 通常人们都是用 global 这样的关键字将他们的设置声明为一个全局变量. 或者在各个页面上都使用 get_options 这样的函数去取得设置. 然而我觉得那样处理并不好. 这里我写了个自认为较好的办法. 欢迎大家批评指正.
该方法用到了数组重载. 数组重载是将对象作为数组使用的一个过程. 为了实现这个你需要用到 ArrayAccess 接口.
Read more…
好久没有关注 Google 自定义搜索. 今天上去一看很多地方都改掉了. Google 更偏向于使用他的 Ajax API. 好吧, 我也来研究一下. 基本来说文档还是很详尽的.
做了个小尝试. 利用 Google Ajax API 写了个 Google 自定义搜索. 可以用来搜索本站内容.
注意: 原则上 Google 要求保留它的 logo. 所以大家在使用的时候还是最后加上. 这也是对 Google 的一种尊重吧.
我写的 DEMO 在这里.
Read more…
上次看到有个 web 招聘笔试题里有个题大意是这样的: 是否尝试写过无限级的导航菜单? 我一时兴致就尝试写了一下.
要想兼容 IE(6/7/8) 系列还真的挺费事. 不得不动用 javascript 以及在 CSS 中使用 hacker. 对 Javascript 我只懂些皮毛. 要想做出些动画效果那几乎不可能. 只好用 jQuery 了.
我现在做了个DEMO. 要修改其动画效果只需要改改 js 中的鼠标效果即可. jQuery 自带的几个动画效果都可以. 当然你还可以发挥你的想象写些自定义动画.
Read more…
阻止直接 POST 过来的 Spam
几天前收到很多 spam, 居然大部分来自同一个 IP. 我只好在数据库里用 SQL 语句删掉. 再去看访问日志. 发现这个 IP 几乎是直接向我的 wp-comments-post.php 这个文件 POST 数据. 也就是说它根本没有访问文章. 我很气愤.
现在想到的解决方案是用 SESSION 来阻止. 写成插件 ( Stop post spam ). 本地测试有效. 但要是用了 HTML 静态缓存就不知到了. 可能会导致任何人都无法提交? 不过总的来说这个是不适合完全静态页面的, 除非我们的隐藏域设置为固定的值? 这个有恐怕无法到达很好的阻止作用. 两难啊. 唉. 反正我也不用缓存插件. 不管了. 交给爱折腾的人吧.
再和大家说说我的流程是怎样的.
Read more…