Loading...

如何在wordpress插件中实现ajax

2007-11-11 17:41:04 发表于Wordpress, 网站技术 本文链接: 如何在wordpress插件中实现ajax

wordpress的优秀之处在于可以随便插,方便插,随处插.所以定制性是相当强悍的,可以做成CMS,甚至论坛.虽然有人会说这样很BT,但是如果你熟悉php,能站在WP的肩膀上,做出效率很高的其他程序又有何不可呢?一不小心又说了这么多的废话,毕竟我对WP的敬仰犹如滔滔江水.下面切入正题,介绍一下如何用插件配合javascript脚本在wordpress中实现ajax.

Ajax其实没有传说中的那么复杂的,只要你稍微熟悉一点javascript就能自己写ajax程序了.在这里我想稍微纠正一些观点,那就是大家常说的那些滑动门技术,那些很炫的div特效其实和ajax技术无关的,仅仅是通过js捕获鼠标事件再加上CSS美化完成的,而Ajax=>AsynchronousJavaScript+XML,说白了就是异步载入XML数据的一种javascript实现罢了. 通过ajax,我们可以在指定的DIV内根据需要在需要的时候载入数据从而实现无刷新更新内容.由于ajax获取的仅仅是需要的数据,所以变相的节约了网络中传输的数据量,提高了页面的载入速度,这也就是ajax能提速的原因,记住,这是ajax能提速的唯一的地方.所以千万别太迷信ajax的提速效果.关于ajax的实现,网络上可以google一大堆代码出来,所以我这里就不重复了.我推荐大家用jquery这个js框架,而不是自己去写复杂的ajax,具体的jquery和ajax请参考我的这篇文章.

客户端的js搞定了,现在的问题就是如何用插件来给ajax提供数据.前面说了,wordpress可以在很多地方接受你的插入,而对于ajax,我们最关心的就是在程序执行的初期进行插入,所以这里要用到这个勾子(hook)“add_action(“init”,”func”)”,这样就能利用默认的wordpress程序来给ajax提供数据,而不是自己编写第三方代码获取数据,下面给一段代码例子:

/*
Plugin Name: cos-smaple
Plugin URI: http://www.storyday.com
Description: sample
Version: 1.0
Author: jiangdong
date:2007-11-11
Author URI:http://www.storyday.com
*/
function ajaxsample(){
if( $_GET['ajax'] == true ){//如果用ajax,则需要在请求的时候加上特殊的?ajax=true,否则会影响正常的页面
echo $_GET['key'];//这里将浏览器的get变量echo出来 ?key=my-custom-key
/*这里可以根据这个key在数据库中获取内容
........这里省略代码若干行........
*/
die();//因为仅仅是获取ajax数据用,所以ajax数据任务完成之后直接将程序die掉,别给出多余的数据。
}
}

add_action(‘init’, ‘ajaxsample’);

激活了这个插件之后,大家访问http://your-domain.com/index.php?ajax=true&key=your-custom-key
看看会有什么结果,是不是按照你的期待出现了特定的ajax需要的数据?本站主页右边显示的当前用户的历史留言就是这样来的,同样利用这样的方法可以在wordpress中实现更多精彩的ajax技术.

由于ajax技术本身需要使用人员对客户端和浏览器端的关系要清晰,并且至少应该要熟悉一点javascript编写,如果你是wp的爱好者,请首先要熟悉wp的模板编写方法.所这篇文章不是一篇入门的文章,唯一有的作用那就是“点拨”,希望对某些特定的朋友有所帮助.

鉴于前几天某些网友的E-mail和在本站的留言求助,写下了上面的文字,当然本人非此专业人士,有错误请指出哦,谢谢!

标签:,
发表于 2007-11-11 17:41:04 目录:Wordpress, 网站技术 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    已经有6位大师动手指导 拒绝低俗
    评论分页: 1
    (Required)
    (Required, not published)
    如果留言未显示无需重复留言,我将为你恢复!