wordpress 处理 ajax 请求

背景:

我写了一个widget,这个widget里有一个form,我要把form里的东西通过ajax打到wordpress处理并返回内容。


步骤:

1、写一个widget

写widget需要继承WP_Widget类,然后重写widget()、update()等方法。

具体可以参考其他的文档来编写一个widget。

在这个widget()里,我加了一段js:

其中需要着重说明的是ajax的url字段data字段的action字段其中url为http://your_domain.com/wp-admin/admin-ajax.php,因为要想处理ajax请求,必须打到这个地址。

data字段是要发送的数据嘛,里面必须包含action字段,并且,这个action的值必须是一个名字handler,先放一边。

var ajaxurl = '<?php echo admin_url('admin-ajax.php')?>';
$('#submit').click(function(e){      
                        $.ajax({
                                type:'post',
                                url:ajaxurl,
                                data:{'action':'handler','a':$('#a').val(),'b':$('#b').val(),'c':$('#c').val()},
                                cache:false,
                                dataType:'json',
                                success:function(result){
                                        $('.recordimg img').attr("src",result);
                                },
                                error:function(data){
                                        alert("err");
                                }
                        });
                        return false;
                });


2、编写处理ajax请求的函数

在theme/functions.php里添加如下代码:

首先第一点,这两片段代码中的加粗字体必须一致。

其次钩子函数必须是wp_ajax_* (这个是admin用户的权限)和 wp_ajax_nopriv_*(这个是普通用户的权限)

最后handler()函数里必须有一个 echo 和 wp_die()或die()结束。并且 echo的必须是string类型

function handler(){
    echo json_encode("data:image/jpeg;base64,".base64_encode(file_get_contents($pic_folder.'after.jpg')));//这里我返回了一个图片的base64串。
    wp_die();
}
add_action( 'wp_ajax_handler', 'handler' );
add_action( 'wp_ajax_nopriv_handler', 'handler' );



对基本就是这样了。


参考:

http://w4dev.com/wp/wp_ajax

http://www.cnblogs.com/huangcong/p/4773366.html

http://blog.csdn.net/Q1059081877Q/article/details/46367249

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值