现在大部分的 WordPress 主题和插件都有后台设置页面, 为主题或插件添加自定义的一些功能. 这些设置会将被保存到数据库中. 然后在主题或插件中使用它们. 通常人们都是用 global 这样的关键字将他们的设置声明为一个全局变量. 或者在各个页面上都使用 get_options 这样的函数去取得设置. 然而我觉得那样处理并不好. 这里我写了个自认为较好的办法. 欢迎大家批评指正.
该方法用到了数组重载. 数组重载是将对象作为数组使用的一个过程. 为了实现这个你需要用到 ArrayAccess 接口.
Read more…
如果你用wordpress搭建的并不是个人博客而是一个分享类型的并希望有人给你投稿.就需要个投稿的插件.
我老乡Grubylee就是这种情况.他最近想用wordpress搭建个资讯和分享类的站点.有点像CMS.Google了一下也没有找到合适的投稿插件.不少人提议用邮件表单.很可惜他的主机不支持发送邮件.还有的插件功能太多还给数据库创建了很多的表.所以也被排除了.
基于上述原因,我就帮忙写了个.顺便分享出来给需要人使用.
这是个极其简单的投稿插件.没有附加其他任何功能.由于我最近看了些Ajax的文章和书籍.就给它附加了Ajax的效果.并不依赖任何的框架.
阻止直接 POST 过来的 Spam
几天前收到很多 spam, 居然大部分来自同一个 IP. 我只好在数据库里用 SQL 语句删掉. 再去看访问日志. 发现这个 IP 几乎是直接向我的 wp-comments-post.php 这个文件 POST 数据. 也就是说它根本没有访问文章. 我很气愤.
现在想到的解决方案是用 SESSION 来阻止. 写成插件 ( Stop post spam ). 本地测试有效. 但要是用了 HTML 静态缓存就不知到了. 可能会导致任何人都无法提交? 不过总的来说这个是不适合完全静态页面的, 除非我们的隐藏域设置为固定的值? 这个有恐怕无法到达很好的阻止作用. 两难啊. 唉. 反正我也不用缓存插件. 不管了. 交给爱折腾的人吧.
再和大家说说我的流程是怎样的.
Read more…