Wordpress Follow5 插件开发日记—插件后台Ajax应用及jQuery的使用
昨天写了一篇文章说自己已经写了一个Follow 5的PHP类(文章链接:写了一个Follow5 API的PHP类),而昨天趁着空闲的时间试着写了一下WordPress的Follow5的插件,并且与我之前写的一天一句的WordPress插件统一,假如那天Follow5被和谐了,我的数据还是存在我的数据库的,那样子方便管理,加上Follow5支持QQ发送消息,就是很强大啦~呵呵
由于之前自己开发过断桥残雪爱墙WordPress插件,所以我开始写的是轻车熟路,可是最后我写到发布消息的时候,总是刷新插件后台的页面,感觉很是不爽,就像办法实现Ajax,那样子用户体验会好点的,可是怎样实现WordPress插件后台中的Ajax还是一个难题~
开始试用了下传入到另一个Ajax的php页面Ajax.php可是不行,因为我要用到get_option函数,而这个函数需要引人一些wp的函数类,还是手动写数据库吧,于是引人了wp-config.php显示错误
Call to undefined method stdClass::set_prefix()
实在没有办法了,这个问题一直困扰着我下午,后来下班的时候找到了一篇文章说是使用在插件中使用Ajax的方法,说是使用wp内置的admin-ajax.php,晚上回家仔细的阅读,今天早上早早的来到公司试用了一下这个方式,还是不行!上了WP的官方找到了一个在“Ajax on the Administration Side”使用Ajax的方法,也是不行。
WordPress插件后台Ajax解决方法
后来我在百度找到了答案,看来百度也不是无用的!呵呵~表扬一下~
方法很简单,我这里稍微说明一下就可以了~
add_action(’init’, ‘wyq_ajax’); function wyq_ajax(){ if($_POST["ajax"){ echo $_POST["what"]; die();//通过die()来防止下面的代码运行 } }
这样你就可以把你的Ajax请求地址直接改为插件的地址,如:http://yourdomain/wp-admin/options-general.php?page=follow5/wyqF5.php
下面我们使用Ajax可以自己写Ajax的代码,可是我发现wp的后台引入了jQuery框架,甚是欣慰,于是写了一串$.post代码,可是提交的时候还是没有return false;而是直接的提交了表单~
在Firebug中报错是:$ undefined!
后来我查看了一下wp的后台代码,代码中的$通通的使用了jQuery的写法(jQuery中为了防止跟其他框架的冲突,可以使用jQuery来代替$的),我想了一下,试着在$使用之前加入
$=jQuery;
这样子我们熟悉的jQuery的$符号就又出来了!哈哈~最后大家看看通过插件提交的Follow5的消息截图吧!
最后给大家再提一个醒:wp中引入的文件,如使用includ之类的引入文件,最后的“?>”一定是干净的,即:没有多余的空格,多余的行,不然wp在引入的时候会报错的!

